android引导用户开启自启动权限的方法

android引导用户开启自启动权限的方法


2023年12月7日发(作者:easy)

android引导用户开启自启动权限的方法

前言:

最近在做项目的过程中遇到了以下一个需求,虽然看起来不难实现,但是在实现的过程中遇到了各种坑,记录一下,今后方便查看

需求:

用户第一次安装APP,点击授权按钮,跳转至授权的页面(不同手机跳转到不同的授权页面),用户授权成功之后,点击返回按钮,直接进入主页面

问题:

1.如何适配不同机型

2.不同机型的授权页面显示不同弹窗(比如三星显示悬浮窗,小米显示弹窗)

3.小米弹窗始终无法显示

4.在授权页面点击返回按钮,怎么直接跳转到主页面

问题1:适配不同机型

这个是借鉴的一篇博文(忘记地方了,后边找到了再添加~~)

public class MobileInfoUtils{

private SettingDialogPermision dialog_per;

//获取手机类型

private static String getMobileType() {

return CTURER;

}

//跳转至授权页面

public void jumpStartInterface(Context context) {

Intent intent = new Intent();

try {

gs(_ACTIVITY_NEW_TASK);

Log.e("HLQ_Struggle", "******************当前手机型号为:" + getMobileType());

ComponentName componentName = null;

if (getMobileType().equals("Xiaomi")) { // 红米Note4测试通过

componentName = new ComponentName("tycenter", "artManagementActivity");

} else if (getMobileType().equals("Letv")) { // 乐视2测试通过

ion("sionautoboot");

} else if (getMobileType().equals("samsung")) { // 三星Note5测试通过

//componentName = new ComponentName("_cn", "nActivity");

//componentName = tenFromString("/.ivity");// Permission Denial not exported from uid 1000,不允许被其他程序调用

componentName = tenFromString("/.anagerDashBoardActivity");

} else if (getMobileType().equals("HUAWEI")) { // 华为测试通过

//componentName = new ComponentName("manager", "tActivity");//锁屏清理

componentName = tenFromString("manager/.pNormalAppListActivity");//跳自启动管理

//(context);

} else if (getMobileType().equals("vivo")) { // VIVO测试通过

componentName = tenFromString("/.wTabActivity");

} else if (getMobileType().equals("Meizu")) { //万恶的魅族

//componentName = tenFromString("/.sionMainActivity");//跳转到手机管家

componentName = tenFromString("/.GActivity");//跳转到后台管理页面

} else if (getMobileType().equals("OPPO")) { // OPPO R8205测试通过

componentName = tenFromString("/.pAppListActivity");

} else if (getMobileType().equals("ulong")) { // 360手机 未测试

componentName = new ComponentName("fe", ".nListActivity");

} else {

// 将用户引导到系统设置页面

if (_INT >= 9) {

Log.e("HLQ_Struggle", "APPLICATION_DETAILS_SETTINGS");

ion("ATION_DETAILS_SETTINGS");

a(rts("package", kageName(), null));

} else if (_INT <= 8) {

ion(_VIEW);

ssName("gs", "ledAppDetails");

ra("ationPkgName", kageName());

}

}

ponent(componentName);

ctivity(intent);

if (getMobileType().equals("Xiaomi")) {

showtip();//显示弹窗(**特别注意**)

}

if (getMobileType().equals("samsung")){

new SettingOverlayView().show(context);//显示悬浮窗

}

} catch (Exception e) {//抛出异常就直接打开设置页面

Log.e("HLQ_Struggle", alizedMessage());

intent = new Intent(_SETTINGS);

ctivity(intent);

}

}//小米手机显示弹窗

private void showtip() {

try {

dialog_per=new SettingDialogPermision(context, Dialog4);

dialog_dow().setType(_TOAST);//注意这里改成吐司类型

dialog_();

Log.e("HLQ_Struggle","显示弹窗");

} catch (Exception e) {

tackTrace();

Log.e("HLQ_Struggle", "没有显示弹窗"+sage());

}

}

}

问题2:不同机型的授权页面显示不同弹窗

在上面的问题中已经解决。

思路如下:

①首先判断当前的机型

②判断完机型之后,通过intent跳转至不同的授权页面

③在startActivity()之后显示悬浮窗或者是弹窗

④小米手机在显示弹窗的时候写上下面这一句话:

getWindow().setType(_TOAST)

因为这里类型没有用“吐司”,所以在授权页面一直不显示弹窗

问题3:小米弹窗始终无法显示

在问题2的第4步解决

问题4:在授权页面点击返回按钮,怎么直接跳转到主页面

逻辑梳理:

Activity A——–点击请求授权—–>跳转至系统授权页——–点击back键——–>要求跳转到主页面(也就是MainActivity,注意不是Activity A)

在实现的过程中,就一直钻牛角尖,这个授权页面的Activity我也拿不到,怎么监听返回按钮呢(黑人问号脸)

所以啊,这时候就体现出Activity生命周期的重要性了。

在授权页面,点击返回键后,会再次跳转到Activity A页面,这时候只需要在Activity A中写上以下代码就完美的解决了:

protected void onRestart() {

art();

Intent intent = new Intent(,);

startActivity(intent);

overridePendingTransition(_fade_in, _fade_out);

finish();

}

这次再次体现了基础!基础!基础!是多么重要!

以上这篇android引导用户开启自启动权限的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


发布者:admin,转转请注明出处:http://www.yc00.com/num/1701934761a1160562.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信