Android12:内置第三方应用,权限控制器已停止运行,应用app已停止运行

1.设备先安装我提供的app【EasyControler】
2.设备--设置--关于手机--版本号(滑动到最下方)---连续点击六下打开 开发者模式
3.设置--系统--开发者模式--开发者选项 --打开usb调试
4.设置--安全设备管理应用--easycontrol的开关打开
5.将设备连接电脑  打开cmd命令框 输入指令:adb shell dpm set-device-owner com.easycontrol.emm/com.easycontrol.emm.receiver.DeviceOwnerReceiver
6.设备重启  重启后打开easycontrol的app  (如果开机后弹出xxx停止运行,将设备多重启几次) 打开app后  app首页显示正常的序列号,说明app正常运行
7.将设备的序列号导入到平台   设备联网  即可完成绑定

C:\Users\xxxxx>adb shell dpm set-device-owner com.easycontrol.emm/com.easycontrol.emm.receiver.DeviceOwnerReceiver
Success: Device owner set to package com.easycontrol.emm/.receiver.DeviceOwnerReceiver
Active admin set to component com.easycontrol.emm/.receiver.DeviceOwnerReceiver

报错原因:

11-07 10:23:11.591  5673  5690 E AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
11-07 10:23:11.591  5673  5690 E AndroidRuntime: Process: com.android.permissioncontroller, PID: 5673
11-07 10:23:11.591  5673  5690 E AndroidRuntime: java.lang.IllegalArgumentException: com.android.permissioncontroller: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_M
UTABLE be specified when creating a PendingIntent.
11-07 10:23:11.591  5673  5690 E AndroidRuntime: Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be
used with inline replies or bubbles.

11-07 10:23:11.591  5673

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要禁止第三方应用程序的开机自启权限,可以使用以下代码: ```java PackageManager packageManager = context.getPackageManager(); ComponentName componentName = new ComponentName(context, SampleBootReceiver.class); int state = packageManager.getComponentEnabledSetting(componentName); if (state == PackageManager.COMPONENT_ENABLED_STATE_ENABLED) { packageManager.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP); } ``` 其中, `SampleBootReceiver` 是一个广播接收器,用来接收系统开机广播。这里我们通过 PackageManager 的 `getComponentEnabledSetting()` 方法来获取 `SampleBootReceiver` 的当前状态,如果是启用状态,就调用 `setComponentEnabledSetting()` 方法将其禁用。 需要注意的是,该功能需要应用程序具有系统级别的权限才能使用,所以必须在 AndroidManifest.xml 中声明相应的权限: ```xml <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" android:label="@string/permlab_changeComponentEnabledState" android:description="@string/permdesc_changeComponentEnabledState" android:protectionLevel="signature" /> ``` 声明完权限后,在代码中使用 `PackageManager.setComponentEnabledSetting()` 方法时,需要传入 `PackageManager.DONT_KILL_APP` 参数,以确保系统不会在应用程序被杀死时自动重新启用 `SampleBootReceiver`。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值