Android的權(quán)限設(shè)置及自啟動設(shè)置方法

在開發(fā)項目中,遇到了兩大麻煩:

公司主營業(yè)務(wù):成都網(wǎng)站制作、做網(wǎng)站、移動網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)公司是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)公司推出漳州免費做網(wǎng)站回饋大家。

1、涉及到的系統(tǒng)的權(quán)限較多(拍照、錄音、定位、撥號等)。

對于這點,有很多人會拒絕這些權(quán)限,那就尷尬了,他們又不懂只會跟我們反應這什么破app,這個不好用,那個不好使,更可惡的是不同手機的系統(tǒng)設(shè)置都長不一樣,根本就不好跟他們講在那里進行設(shè)置。于是想到解決的辦法就是:在app中添加一個設(shè)置權(quán)限按鈕讓app直接跳到它的權(quán)限設(shè)置界面,這就方便多了。代碼段如下:

/**
  * 跳轉(zhuǎn)到權(quán)限設(shè)置界面
  */
 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在后臺運行運行就死了,通知收不到了。

經(jīng)過了我一番搜索后,稍微有點成果。

首先,最基本的要保證service不容易被殺掉:1、將service優(yōu)先級調(diào)到最大;2、在onDestroy()中自啟。

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

其次,在AndroidManifest.xml文件里將persistent設(shè)置為true。

最后,就是將app設(shè)置為允許自啟動。(就這個!我頭很大!)

這里我想著和設(shè)置權(quán)限一樣,直接點擊一個按鈕直接跳到自啟動管理頁面,然而網(wǎng)上搜了很久都沒有找到這個統(tǒng)一的Intent。

而是通過執(zhí)行這個指令 adb shell dumpsys activity top來捕捉當前的Activity。然后app可以通過指定的ComponentName來進行跳轉(zhuǎn)。

例如:我用的是紅米note3

紅米note3系統(tǒng)設(shè)置中自啟動管理的頁面:

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

于是可以通過下面的代碼段來進行頁面跳轉(zhuǎn)進行設(shè)置:

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){//拋出異常就直接打開設(shè)置頁面
   intent=new Intent(Settings.ACTION_SETTINGS);
   context.startActivity(intent);
  }

 }

然而別的系統(tǒng)是啥,公司太寒酸了,沒有別的安卓機。。。求各位好心的大神提供一下。。。

目前知道的:

/**
  * 跳轉(zhuǎn)到自啟動頁面
  *
  * 華為 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
  *
  */

還有很多常見的系統(tǒng)都母雞了,也不知道有沒有別的簡潔的方法。。。

以上這篇Android的權(quán)限設(shè)置及自啟動設(shè)置方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持創(chuàng)新互聯(lián)。

當前題目:Android的權(quán)限設(shè)置及自啟動設(shè)置方法
本文鏈接:http://muchs.cn/article24/jcpdce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計云服務(wù)器、外貿(mào)網(wǎng)站建設(shè)服務(wù)器托管、做網(wǎng)站、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名