在代码中判断用户的自启动权限是否开启,OPPO华为等机型,无法准确判断,求各位打咯啊
2条回答 默认 最新
- a252354636 2018-03-26 12:21关注
public class MobileInfoUtils{
private SettingDialogPermision dialog_per;
//获取手机类型
private static String getMobileType() {
return Build.MANUFACTURER;
}//跳转至授权页面 public void jumpStartInterface(Context context) { Intent intent = new Intent(); try { intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); Log.e("HLQ_Struggle", "******************当前手机型号为:" + getMobileType()); ComponentName componentName = null; if (getMobileType().equals("Xiaomi")) { // 红米Note4测试通过 componentName = new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity"); } else if (getMobileType().equals("Letv")) { // 乐视2测试通过 intent.setAction("com.letv.android.permissionautoboot"); } else if (getMobileType().equals("samsung")) { // 三星Note5测试通过 //componentName = new ComponentName("com.samsung.android.sm_cn", "com.samsung.android.sm.ui.ram.AutoRunActivity"); //componentName = ComponentName.unflattenFromString("com.samsung.android.sm/.ui.ram.RamActivity");// Permission Denial not exported from uid 1000,不允许被其他程序调用 componentName = ComponentName.unflattenFromString("com.samsung.android.sm/.app.dashboard.SmartManagerDashBoardActivity"); } else if (getMobileType().equals("HUAWEI")) { // 华为测试通过 //componentName = new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity");//锁屏清理 componentName = ComponentName.unflattenFromString("com.huawei.systemmanager/.startupmgr.ui.StartupNormalAppListActivity");//跳自启动管理 //SettingOverlayView.show(context); } else if (getMobileType().equals("vivo")) { // VIVO测试通过 componentName = ComponentName.unflattenFromString("com.iqoo.secure/.safeguard.PurviewTabActivity"); } else if (getMobileType().equals("Meizu")) { //万恶的魅族 //componentName = ComponentName.unflattenFromString("com.meizu.safe/.permission.PermissionMainActivity");//跳转到手机管家 componentName = ComponentName.unflattenFromString("com.meizu.safe/.permission.SmartBGActivity");//跳转到后台管理页面 } else if (getMobileType().equals("OPPO")) { // OPPO R8205测试通过 componentName = ComponentName.unflattenFromString("com.oppo.safe/.permission.startup.StartupAppListActivity"); } else if (getMobileType().equals("ulong")) { // 360手机 未测试 componentName = new ComponentName("com.yulong.android.coolsafe", ".ui.activity.autorun.AutoRunListActivity"); } else { // 将用户引导到系统设置页面 if (Build.VERSION.SDK_INT >= 9) { Log.e("HLQ_Struggle", "APPLICATION_DETAILS_SETTINGS"); intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS"); intent.setData(Uri.fromParts("package", context.getPackageName(), null)); } else if (Build.VERSION.SDK_INT <= 8) { intent.setAction(Intent.ACTION_VIEW); intent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails"); intent.putExtra("com.android.settings.ApplicationPkgName", context.getPackageName()); } } intent.setComponent(componentName); context.startActivity(intent); if (getMobileType().equals("Xiaomi")) { showtip();//显示弹窗(**特别注意**) } if (getMobileType().equals("samsung")){ new SettingOverlayView().show(context);//显示悬浮窗 } } catch (Exception e) {//抛出异常就直接打开设置页面 Log.e("HLQ_Struggle", e.getLocalizedMessage()); intent = new Intent(Settings.ACTION_SETTINGS); context.startActivity(intent); } }
//小米手机显示弹窗
private void showtip() {
try {
dialog_per=new SettingDialogPermision(context, R.style.CustomDialog4);
dialog_per.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);//注意这里改成吐司类型
dialog_per.show();
Log.e("HLQ_Struggle","显示弹窗");
} catch (Exception e) {
e.printStackTrace();
Log.e("HLQ_Struggle", "没有显示弹窗"+e.getMessage());
}
}
}解决 1无用
悬赏问题
- ¥15 delta降尺度计算的一些细节,有偿
- ¥15 Arduino红外遥控代码有问题
- ¥15 数值计算离散正交多项式
- ¥30 数值计算均差系数编程
- ¥15 redis-full-check比较 两个集群的数据出错
- ¥15 Matlab编程问题
- ¥15 训练的多模态特征融合模型准确度很低怎么办
- ¥15 kylin启动报错log4j类冲突
- ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大
- ¥15 import arcpy出现importing _arcgisscripting 找不到相关程序