在開發項目中,遇到了兩大麻煩:
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的權限設置及自啟動設置方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答