展锐Android9应用保活修改和默认开启无障碍中已下载的服务

1、展锐平台Andorid9任务栏有个功能,手动下拉任务栏界面可以对后台应用进行上锁和解锁操作,那想要实现应用保活功能(全部清除、手动上滑清除、重启、灭屏均无法杀死应用进程),我们就可以在系统读取到应用的时候onTaskDataLoaded()方法中默认给其上锁,并在changeLockState()方法中将其写死为true。

packages/apps/Launcher3/quickstep/src/com/android/quickstep/views/TaskView.java

    @Override
    public void onTaskDataLoaded(Task task, ThumbnailData thumbnailData) {
        if (task == null || mTask == null
                || !task.key.equals(mTask.key)) {
            Log.e(TAG, "onTaskDataLoaded ignore load this task: " + task + "-- mTask: " + mTask);
            return;
        }
        if (null != mLockIconView) {
            String mskippkgname = "com.peaceton.phone";
            String pkgname = mTask.key.baseIntent.getComponent().getPackageName();
            if ((mskippkgname).equals(pkgname)) {
                mLocked = true;
                mLockIconView.setLockState(mLocked);
            } else {
                mLockIconView.setVisibility(View.VISIBLE);
                mLocked = TaskLockStatus.isSavedUnlockedTask(getContext(), task);
                mLockIconView.setLockState(mLocked);
            }
        }

        mSnapshotView.setThumbnail(task, thumbnailData);
        mIconView.setDrawable(task.icon);
        mIconView.setOnClickListener(icon -> TaskMenuView.showForTask(this));
        mIconView.setOnLongClickListener(icon -> {
            requestDisallowInterceptTouchEvent(true);
            return TaskMenuView.showForTask(this);
        });
    }

==================================>><<=======================================

    public void changeLockState() {
        mLocked = !mLocked;
        TaskLockStatus.setLockState(getContext(),mTask,mLocked);

        if (null != mLockIconView) {
            String mskippkgname = "com.peaceton.phone";
            String pkgname = mTask.key.baseIntent.getComponent().getPackageName();
            if ((mskippkgname).equals(pkgname)) {
                mLocked = true;
                mLockIconView.setLockState(mLocked);
            } else {
                mLockIconView.setLockState(mLocked);
            }
        }

    }

2、无障碍中的已下载的服务开启状态有默认值可以进行设置,在frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java中:

    private void loadSecureSettings(SQLiteDatabase db) {

            loadSecure35Settings(stmt);

            loadSetting(stmt, Settings.Secure.ACCESSIBILITY_ENABLED, 1);
            loadSetting(stmt, Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES, "com.peaceton.phone/com.peaceton.phone.AccessibilityService");//换成应用对应的无障碍服务即可

            loadBooleanSetting(stmt, Settings.Secure.MOUNT_PLAY_NOTIFICATION_SND,
                    R.bool.def_mount_play_notification_snd);

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值