16 展讯Sprd设置-电池-获取模拟辅助服务列表接口

本文介绍了一种用于管理Android设备上模拟辅助组件的方法,包括获取已启用和已安装的辅助服务列表,通过ComponentName检查服务是否已被启用或安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 前言

后台管理中,尤其是bing-service类型启动中,有些服务是不建议拦截的,比如模拟辅助功能

2. 获取可用模拟辅助组件列表

    private List<ComponentName> mEnabledAccessibilityServiceList = new ArrayList<>();

    public boolean isEnabledAccessibilityService(ComponentName comp) {
        return mEnabledAccessibilityServiceList.contains(comp);
    }

    /**
     * @get the set of enabled accessibility services.
     */
    private void getEnabledServiceList() {
        try {
            final String enabledServicesSetting = Settings.Secure.getStringForUser(
                    mContext.getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES,
                    UserHandle.myUserId());

            Slog.d(TAG, "enabledServicesSetting:" + enabledServicesSetting);
            if (enabledServicesSetting == null) {
                return;
            }
            mEnabledAccessibilityServiceList.clear();

            final TextUtils.SimpleStringSplitter colonSplitter = sStringColonSplitter;
            colonSplitter.setString(enabledServicesSetting);

            while (colonSplitter.hasNext()) {
                final String componentNameString = colonSplitter.next();
                final ComponentName enabledService = ComponentName.unflattenFromString(
                        componentNameString);
                if (enabledService != null) {
                    mEnabledAccessibilityServiceList.add(enabledService);
                }
            }
        } catch (Exception e){}

        if (DEBUG) {
            for (int i = 0, count = mEnabledAccessibilityServiceList.size(); i < count; ++i) {
                Slog.d(TAG, "Enabled AccessibilityService : " + mEnabledAccessibilityServiceList.get(i));
            }
        }
    }

3. 获取已安装的模拟辅助组件列表

    private List<ComponentName> mInstalledAccessibilityServiceList = new ArrayList<>();

    public boolean isInstalledAccessibilityService(ComponentName comp) {
        return mInstalledAccessibilityServiceList.contains(comp);
    }

    private void loadInstalledAccessibilityServiceList () {

        AccessibilityManager accessibilityManager = AccessibilityManager.getInstance(mContext);

        try {
            List<AccessibilityServiceInfo> installedServices =
                    accessibilityManager.getInstalledAccessibilityServiceList();

            mInstalledAccessibilityServiceList.clear();
            for (int i = 0, count = installedServices.size(); i < count; ++i) {
                AccessibilityServiceInfo info = installedServices.get(i);

                ServiceInfo serviceInfo = info.getResolveInfo().serviceInfo;
                ComponentName componentName = new ComponentName(serviceInfo.packageName,
                        serviceInfo.name);

                mInstalledAccessibilityServiceList.add(componentName);
            }
        } catch (Exception e) {}

        if (DEBUG) {
            for (int i = 0, count = mInstalledAccessibilityServiceList.size(); i < count; ++i) {
                Slog.d(TAG, "Installed Accessibility Service: " + mInstalledAccessibilityServiceList.get(i));
            }
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

法迪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值