Rak*_*h L 5 android autostart push-notification
我正在开发一个我要在其中显示Push通知的android应用程序。
除小米手机(我正在使用Redmi Note 4)外,它在大多数设备中均显示良好。我发现的问题是,由于Xiomi提供的“ 自动启动”选项,默认情况下该选项将被禁用,并且用户需要手动启用它。
但是我不知道我能看到某些Android Apps在没有任何用户交互的情况下启用此选项,例如:WhatsApp。如果我尝试重新安装WhatsApp并看到“自动启动”选项,则会启用它!
我无法通过说这是Xiomi设备的功能来说服客户,因为他指出了一些运行良好的应用程序,就像我上面提到的示例一样。
这个问题已经有人问过了
以编程方式将我的应用添加到android中的AutoStart应用列表
如何在小米制造商移动设备中以编程方式为我们的应用程序启用自动启动检查
但是我看不到任何答案,因此希望有人能对此给出答案,在此发布。
小米、OPPO、vivo等设备以编程方式启用自动启动选项
String manufacturer = android.os.Build.MANUFACTURER;
try {
Intent intent = new Intent();
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"));
} else if ("Letv".equalsIgnoreCase(manufacturer)) {
intent.setComponent(new ComponentName("com.letv.android.letvsafe", "com.letv.android.letvsafe.AutobootManageActivity"));
} else if ("Honor".equalsIgnoreCase(manufacturer)) {
intent.setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity"));
}
List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
if (list.size() > 0) {
startActivity(intent);
}
} catch (Exception e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)