Android的权限设置及自启动设置方法

在开发项目中,遇到了两大麻烦:

1、涉及到的系统的权限较多(拍照、录音、定位、拨号等)。

对于这点,有很多人会拒绝这些权限,那就尴尬了,他们又不懂只会跟我们反应这什么破app,这个不好用,那个不好使,更可恶的是不同手机的系统设置都长不一样,根本就不好跟他们讲在那里进行设置。于是想到解决的办法就是:在app中添加一个设置权限按钮让app直接跳到它的权限设置界面,这就方便多了。代码段如下:

/**
  * 跳转到权限设置界面
  */
 private void getAppDetailSettingIntent(Context context){
  Intent intent = new Intent();
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  if(Build.VERSION.SDK_INT >= 9){
   intent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
   intent.setData(Uri.fromParts("package", 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", getPackageName());
  }
  startActivity(intent);
 }

2、对实时推送消息的要求很高。

就这个问题,对于菜鸟的我来讲真的是好头大…有很多客户反应app在后台运行运行就死了,通知收不到了。

经过了我一番搜索后,稍微有点成果。

首先,最基本的要保证service不容易被杀掉:1、将service优先级调到最大;2、在onDestroy()中自启。

<intent-filter android:priority="1000">

其次,在AndroidManifest.xml文件里将persistent设置为true。

最后,就是将app设置为允许自启动。(就这个!我头很大!)

这里我想着和设置权限一样,直接点击一个按钮直接跳到自启动管理页面,然而网上搜了很久都没有找到这个统一的Intent。

而是通过执行这个指令 adb shell dumpsys activity top来捕捉当前的Activity。然后app可以通过指定的ComponentName来进行跳转。

例如:我用的是红米note3

红米note3系统设置中自启动管理的页面:

com.miui.securitycenter/com.miui.permcenter.autostart.AutoStartManagementActivity

于是可以通过下面的代码段来进行页面跳转进行设置:

private void selfStartManagerSettingIntent(Context context){

  String system = EquipmentSystemUtils.getSystem();
  Intent intent = new Intent();
  intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
  ComponentName componentName = new ComponentName("com.huawei.systemmanager","com.huawei.systemmanager.startupmgr.ui.StartupNormalAppListActivity");
  intent.setComponent(componentName);
  try{
   context.startActivity(intent);
  }catch (Exception e){//抛出异常就直接打开设置页面
   intent=new Intent(Settings.ACTION_SETTINGS);
   context.startActivity(intent);
  }

 }

然而别的系统是啥,公司太寒酸了,没有别的安卓机。。。求各位好心的大神提供一下。。。

目前知道的:

/**
  * 跳转到自启动页面
  *
  * 华为 com.huawei.systemmanager/com.huawei.systemmanager.startupmgr.ui.StartupNormalAppListActivity
  * 小米 com.miui.securitycenter/com.miui.permcenter.autostart.AutoStartManagementActivity
  * vivo com.iqoo.secure/.ui.phoneoptimize.AddWhiteListActivity
  * oppo com.coloros.oppoguardelf/com.coloros.powermanager.fuelgaue.PowerUsageModelActivity
  *
  */

还有很多常见的系统都母鸡了,也不知道有没有别的简洁的方法。。。

以上这篇Android的权限设置及自启动设置方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Android开发之设置开机自动启动的几种方法

    Android开发之设置开机自动启动的几种方法 方法一: <!-- 开机启动 --> <receiver android:name=".AutoStartReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.inten

  • Android权限控制之自定义权限

    天哪,这篇文章终于说道如何自定义权限了,左盼右盼,其实这个自定义权限相当easy.为了方便叙述,我这边会用到两个app作为例子示范. Permission App: used to define a new permission 这个作为定义权限的App,我称之为Permission App. Client App: used to access the specified activity of Permission App 这个作为访问上述自定义权限的App,我称之为Client App 先

  • 详解Android权限管理之Android 6.0运行时权限及解决办法

    前言: 今天还是围绕着最近面试的一个热门话题Android 6.0权限适配来总结学习,其实Android 6.0权限适配我们公司是在今年5月份才开始做,算是比较晚的吧,不过现在Android 6.0以上设备越来越多了,所以Android 6.0 权限适配是必不可少的工作,这里主要介绍一下我们公司是如何做Android 6.0权限适配的. Android 6.0以下非运行时权限: 根据上面博客我们很清楚的知道,Android的权限其实就是为了程序之间更加的安全的访问,所以权限有等级之分,比如:No

  • android应用实现开机自动启动方法

    原理:Android系统在开机的时候会发出一个广播.这样我们就可以接收这个广播,然后启动我们的应用.广播接收器必须在xml里面配置,因为xml里面配置的广播接收器  是不随着应用的退出而退出的. 广播接收器: package com.yangshidesign.boot; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public c

  • 详解Android运行时权限及APP适配方法

    Android 6.0起,Android加强了权限管理,引入运行时权限概念.对于: 1. Android 5.1(API 22)及以前版本,应用权限必须声明在AndroidManifest.xml中,应用在安装时,Android会列出其所需的所有权限供用户确认安装. 2. Android 6.0(API 23)及以后版本,应用权限必须声明在AndroidManifest.xml中,但权限分为普通权限(Normal Permissions)和危险权限(Dangerous Permissions),

  • Android的权限设置及自启动设置方法

    在开发项目中,遇到了两大麻烦: 1.涉及到的系统的权限较多(拍照.录音.定位.拨号等). 对于这点,有很多人会拒绝这些权限,那就尴尬了,他们又不懂只会跟我们反应这什么破app,这个不好用,那个不好使,更可恶的是不同手机的系统设置都长不一样,根本就不好跟他们讲在那里进行设置.于是想到解决的办法就是:在app中添加一个设置权限按钮让app直接跳到它的权限设置界面,这就方便多了.代码段如下: /** * 跳转到权限设置界面 */ private void getAppDetailSettingInte

  • Android应用实现安装后自启动的方法

    和网上大多数方法一样,使用广播手段: ACTION_PACKAGE_ADDED 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程序不能接收到这个广播) ACTION_PACKAGE_REPLACED 一个新版本的应用安装到设备,替换之前已经存在的版本 ACTION_PACKAGE_CHANGED 一个已存在的应用程序包已经改变,包括包名 ACTION_PACKAGE_REMOVED 一个已存在的应用程序包已经从设备上移除,包括包名(正在被安装的包程序不能接收到这个广播) ACTION_

  • linux下oracle设置开机自启动实现方法

    在CentOS 6.3下安装完Oracle 10g R2,重开机之后,你会发现Oracle没有自行启动,这是正常的,因为在Linux下安装Oracle的确不会自行启动,必须要自行设定相关参数,首先先介绍一般而言如何启动oracle. 一.在Linux下启动Oracle 登录到CentOS,切换到oracle用户权限 # su – oracle 接着输入: $ sqlplus "/as sysdba" 原本的画面会变为SQL> 接着请输入SQL> startup 就可以正常的

  • CentOS 7安装Mysql并设置开机自启动的方法

    CentOS 7不带Mysql数据库了,默认的数据库是MariaDB(Mysql的一个分支). 可以按照以下步骤手动安装Mysql数据库. 1. 下载rpm安装文件 wget http://repo.mysql.com/mysql-community-release-el7.rpm 2. 执行rpm安装 rpm -ivh mysql-community-release-el7.rpm 依赖解析完成后,出现下列选项: Dependencies Resolved ==================

  • linux设置tomcat自启动的方法

    linux设置tomcat自动启动在centos下,开机后会自动执行/etc/rc.local中的命令,平时启动tomcat的命令为tomcat_home/bin/startup.sh或tomcat_home/bin/catalina.sh start,当直接把他们任何一个加入到/etc/rc.local中,重启机器后发现tomcat并没有启动.原因是开机时java的环境还没有设置好,故自己写一个脚本,先设置java环境,然后在启动,脚本如下: 复制代码 代码如下: export JAVA_HO

  • Android 代码设置开机自启动App的方法

    有的时候想要用户一旦打开手机.我们的APP就自动运行了. 代码如下: 创建一个监听. /** * create by:sunlei on 2017/7/7 15:48 * e-mail:872822645@qq.com * introduce: */ public class ContentReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { I

  • Android 6.0以上权限拒绝打开权限设置界面的解决方法

    本人使用小米手机,打开qq或者微信的时候,某个权限拒绝的话,会提示你开启,点击开启会跳转到app的权限设置界面,当然了,这是国内系统深层定制的原因,也就是说这个界面原声的android没有的!这里以小米和魅族作为示例讲解如何让用户手动打开权限,当然了如果是原声的android就让他跳转到应用的详情设置页面(有点坑,因为普通用户还是不知道怎么整). 参考了很多零零碎碎的东西,网址已经找不到了...... ok,第一步是跳转到系统的界面,下面基本上可以从9开始考虑了,可以简化. String SCH

  • Android编程设置屏幕亮度的方法

    本文实例讲述了Android编程设置屏幕亮度的方法.分享给大家供大家参考,具体如下: 使用场景 最近在研究AndroidL Settings的代码,写了一个简单的控件来操控屏幕亮度. 其实,调节屏幕亮度的场景应用很广,例如很多视频应用都响应touch事件来进行亮度调节. 屏幕亮度调节模式 首先,需要明确屏幕亮度有两种调节模式: Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC:值为1,自动调节亮度. Settings.System.SCREEN_B

  • 阿里云Centos7下安装Redis及tomcat设置自启动的方法

    Redis安装配置 安装Redis(root账户下 $ wget http://download.redis.io/releases/redis-4.0.2.tar.gz $ tar xzf redis-4.0.2.tar.gz $ cd redis-4.0.2 $ make $ make install //将可执行程序复制到/usr/local/bin中 启动redis 1.直接启动 $ cd redis-4.0.2 $ cd src $ redis-server 2.加载配置启动 ./re

  • win2003服务器asp.net权限设置问题及解决方法

    服务器asp.net权限设置问题及解决方法 本人服务器使用环境:WIN 2003 ASP.NET相对于ASP,设置权限方面有点不同,有一点儿设置错了都运行不到.在网上搜索到的都是很垃圾的答案,没有一个用得到的,下面是我自己设置并从中遇到的问题摸索后得到的经验,给大家分享. ASP.NET需要用到USERS组的权限,因为我也遇过很多次自己设置了权限之后发现网站运行不了,很郁闷.下面根据出现的问题,一点点解决,让你的ASP.NET运行起来.. 问题一: 未找到路径"C:\"的一部分. 说明

随机推荐