Android11以上系统实现app霸屏的一种设置

Android11以上系统有一种设置普通app实现霸屏的功能,即让系统一直停留在当前app界面,只有特殊的组合操作才能退出到其他app的界面。

开启这个功能需要先在系统设置-->安全-->更多安全设置-->开启固定应用选项。

然后,打开要设置的应用,在点击导航栏的recent按键(方形的那个按键),然后 长按顶上的图标就会出来一个菜单,里面有一个固定的选项。点击“固定”,就可以设置app为固定应用。app这个时候就退出不了。

点击返回和home按键就退出不了了。

上面是手动设置app的方式,当然,也可以通过代码去实现这个功能。具体方式就是开机以后去启动要设置的app,然后通过ActivityTaskManager.getService().startSystemLockTaskMode(taskId)去设置app为固定app。startSystemLockTaskMode这个函数是通过taskid去设置app为固定应用的。所以启动app后,就可以获取appde taskid了。这个功能通过一个函数就可以实现了。

	public static void setAppAsPinApp(Context context, String packageName) {  
        int taskId = -1; 
        ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);  
        List<RecentTaskInfo> tasks =  activityManager.getRecentTasks(5, 0);
  
        if (tasks != null) {  
            for (RecentTaskInfo task : tasks) {  
                if (task.topActivity != null && task.topActivity.getPackageName().equals(packageName)) {  
					
                    taskId = task.id;  
					Log.i(TAG, "get pin app:" + packageName + " taskId:"+taskId);
                    break;
                }  
            }  
        }  
		if(taskId > 0){
			try {
				ActivityTaskManager.getService().startSystemLockTaskMode(taskId);
            } catch (RemoteException e) {
            }
		}

    } 

上面是设置应用为固定应用,如果要取消设置固定应用,则调用ActivityTaskManager.getService().stopSystemLockTaskMode函数即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值