Android各大手機系統開啟許可權管理頁面

來源:互聯網
上載者:User

標籤:category   lint   不能   div   rac   魅族   sed   tco   oid   

最近項目上比較忙,終於有空閑時間寫寫東西了。

相信做過Android的都知道,現在的手機系統五花八門,當我們去請求使用者的許可權的時候,總是會彈出是否允許的對話方塊。

而且使用者一旦不小心點了拒絕,下次就不再詢問了,而很多小白使用者也不知道怎麼去設定。這就導致了很不好的使用者體驗。

經過研究,我發現像小米,魅族,這些滿大街的系統,都是可以通過隱式意圖開啟使用權限設定頁面的。

這裡指的是自身app的許可權管理頁面

之前已經有人寫過類似的文章,不過都比較分散,我這裡把這些方法總結了一下。

不多說,直接上代碼。

首先是最蛋疼的小米,百度了很多前輩留下的方法,發現都不能開啟,沒有辦法,只能通過 adb dumpsys activity activities 命令去查看

經過一番研究終於開啟了。

/**  * 跳轉到miui的許可權管理頁面  */  private void gotoMiuiPermission() {      Intent i = new Intent("miui.intent.action.APP_PERM_EDITOR");      ComponentName componentName = new ComponentName("com.miui.securitycenter", "com.miui.permcenter.permissions.AppPermissionsEditorActivity");      i.setComponent(componentName);      i.putExtra("extra_pkgname", getPackageName());      try {          startActivity(i);      } catch (Exception e) {          e.printStackTrace();          gotoMeizuPermission();      }  }  

接下來上魅族的代碼

/**  * 跳轉到魅族的許可權管理系統  */  private void gotoMeizuPermission() {      Intent intent = new Intent("com.meizu.safe.security.SHOW_APPSEC");      intent.addCategory(Intent.CATEGORY_DEFAULT);      intent.putExtra("packageName", BuildConfig.APPLICATION_ID);      try {          startActivity(intent);      } catch (Exception e) {          e.printStackTrace();          gotoHuaweiPermission();      }  }  

華為的系統由於不太一樣,有些系統是華為自己的許可權管理,而6.0的是用的原生的許可權管理頁面,目前手上只有一台6.0的華為手機,

暫時沒有研究到開啟的方法,如果有知道的大神麻煩告知一下

不過打不開沒關係,我們可以退而求其次,開啟所用應用的許可權管理頁面

/**  * 華為的許可權管理頁面  */  private void gotoHuaweiPermission() {      try {          Intent intent = new Intent();          intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);          ComponentName comp = new ComponentName("com.huawei.systemmanager", "com.huawei.permissionmanager.ui.MainActivity");//華為許可權管理          intent.setComponent(comp);          startActivity(intent);      } catch (Exception e) {          e.printStackTrace();          startActivity(getAppDetailSettingIntent());      }    }  

目前也就研究了這三大系統,對於原生系統,和其他系統,如果找不到方法,也可以先把使用者引導到系統設定頁面

/**  * 擷取應用詳情頁面intent  *  * @return  */  private Intent getAppDetailSettingIntent() {      Intent localIntent = new Intent();      localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);      if (Build.VERSION.SDK_INT >= 9) {          localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");          localIntent.setData(Uri.fromParts("package", getPackageName(), null));      } else if (Build.VERSION.SDK_INT <= 8) {          localIntent.setAction(Intent.ACTION_VIEW);          localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");          localIntent.putExtra("com.android.settings.ApplicationPkgName", getPackageName());      }      return localIntent;  }  

擷取到intent之後直接startactivity就好了。。。

造詣不夠,就只知道這麼多了,歡迎各位大牛補充!

Android各大手機系統開啟許可權管理頁面

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.