我的应用程序中的服务需要一直在后台运行,在所有设备中它的工作正常除了小米,我已经阅读了一些我们需要在应用程序的设置中启用自动启动以保持服务运行的地方.
所以请告诉我如何以编程方式启用自动启动,因为用户永远不会这样做.
任何帮助将不胜感激.
小智 20
您无法直接启用自动启动,但您可以将用户重定向到自动启动设置屏幕,并要求用户为您的应用启用它.使用以下解决方案为xiaomi,oppo和vivo手机.如果存在,将启动自动启动屏幕.
try {
Intent intent = new Intent();
String manufacturer = android.os.Build.MANUFACTURER;
if ("xiaomi".equalsIgnoreCase(manufacturer)) {
intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
} else if ("oppo".equalsIgnoreCase(manufacturer)) {
intent.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity"));
} else if ("vivo".equalsIgnoreCase(manufacturer)) {
intent.setComponent(new ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity"));
}
List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() > 0) {
context.startActivity(intent);
}
} catch (Exception e) {
Crashlytics.logException(e);
}
Run Code Online (Sandbox Code Playgroud)
试试这个...它对我有用.它将打开屏幕以启用自动启动.但是如果你尝试从那里禁用它将关闭应用程序.我正在找出解决方案.直到那时你可以用它作为解决方案.
String manufacturer = "xiaomi";
if(manufacturer.equalsIgnoreCase(android.os.Build.MANUFACTURER)) {
//this will open auto start screen where user can enable permission for your app
Intent intent = new Intent();
intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"));
startActivity(intent);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15685 次 |
| 最近记录: |