android - 如何通过一个简单的对话框获得自动启动权限(Android)
问题描述
小米、Oppo、Vivo、Honor 等一些品牌不允许应用程序在后台运行服务/广播接收器等,除非我们通过提供“自动启动”权限等操作将应用程序列入白名单。为了让用户授予应用程序自动启动权限,我的应用程序将用户带到设置屏幕,他们可以在其中为应用程序启用自动启动。我认为这样做可能会让用户对我的应用产生怀疑,或者他们可能会感到害怕。有没有办法通过对话框获得自动启动权限,或者除了获得自动启动权限之外,还有其他方法可以将应用程序列入白名单吗?
现在我正在使用这段代码:
if (Build.BRAND.equalsIgnoreCase("xiaomi")) {
Intent intent = new Intent();
intent.setComponent(new
ComponentName("com.miui.securitycenter",
"com.miui.permcenter.autostart.AutoStartManagementActivity"));
intent.setData(Uri.parse("package:" + getPackageName()));
startActivity(intent);
} else if (Build.MANUFACTURER.equalsIgnoreCase("oppo")) {
try {
Intent intent = new Intent();
intent.setClassName("com.coloros.safecenter",
"com.coloros.safecenter.permission.startup.StartupAppListActivity");
startActivity(intent);
} catch (Exception e) {
try {
Intent intent = new Intent();
intent.setClassName("com.oppo.safe",
"com.oppo.safe.permission.startup.StartupAppListActivity");
startActivity(intent);
} catch (Exception ex) {
try {
Intent intent = new Intent();
intent.setClassName("com.coloros.safecenter",
"com.coloros.safecenter.startupapp.StartupAppListActivity");
startActivity(intent);
} catch (Exception exx) {
}
}
}
}
但它会将用户带到“设置”中的“自动启动”屏幕,这是我不想要的。
请建议一种通过对话框获得自动启动权限的方法,或通过简单对话框将应用程序列入白名单的其他方法。
解决方案
推荐阅读
- json - 在 Circe 中使用没有显式配置依赖的蛇案例
- listview - 使用 FutureBuilder 在 Flutter 中显示存储在数据库中的项目列表
- kotlin - 如何从 Kotlin 的 Firestore 集合中获取单个文档的 DocumentChange 对象?
- git - 推送被拒绝,无法编译 Python 应用程序错误 Discord.py
- xamarin.forms - 无法导航到主详细信息页面
- azure - 如何从 AZURE 函数 API url 中删除 CODE 参数?
- python - 是否可以在python中同时连续运行2个线程?
- flutter - 颤振中的单例模式
- python - 如何从while循环更改条件
- css - CSS网格不同的列数