Android6.0獲取動(dòng)態(tài)權(quán)限代碼示例
Android系統(tǒng)對所有的危險(xiǎn)權(quán)限進(jìn)行了分組,稱為 權(quán)限組 。屬于同一組的危險(xiǎn)權(quán)限將自動(dòng)合并授予,用戶授予應(yīng)用某個(gè)權(quán)限組的權(quán)限,則應(yīng)用將獲得該權(quán)限組下的所有權(quán)限(前提是相關(guān)權(quán)限在 AndroidManifest.xml 中有聲明)。
危險(xiǎn)權(quán)限 和 權(quán)限組 列表如下: 在 AndroidManifest.xml 聲明過的危險(xiǎn)權(quán)限對應(yīng)的權(quán)限組可以在系統(tǒng) “設(shè)置” -> “應(yīng)用” -> “應(yīng)用信息” -> “權(quán)限” 中查看,可以手動(dòng)授權(quán)和取消授權(quán)。
1、設(shè)備系統(tǒng)是 Android 6.0 (API 23) 或更高版本,并且應(yīng)用的 targetSdkVersion 是 23 或更高版本,則針對在 AndroidManifest.xml 中聲明的危險(xiǎn)權(quán)限,在運(yùn)行時(shí)還需要?jiǎng)討B(tài)請求用戶授權(quán)。
2、動(dòng)態(tài)權(quán)限請求相關(guān)操作的API封裝在在android.support.v4包中,發(fā)起請求權(quán)限的Activity需要直接或間接繼承android.support.v4.app.FragmentActivity。
3、 也可以在直接或間接繼承 android.support.v4.app.Fragment 的 Fragment 中發(fā)起權(quán)限請求。
首先在清單文件中注冊
然后在MainActivity.java中將權(quán)限封裝到一個(gè)String數(shù)組中
static final String[] PERMISSION = new String[]{ Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.RECORD_AUDIO, Manifest.permission.RECEIVE_BOOT_COMPLETED };
然后在onCreate()方法中加入一下代碼:
if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) { //Android 6.0申請權(quán)限 ActivityCompat.requestPermissions(this, PERMISSION, 1); } else { Toast.makeText(this, '成功', Toast.LENGTH_SHORT).show(); }
我通常將上述代碼寫在另一個(gè)方法中,然后在onCreate()方法中調(diào)用。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. .NET中l(wèi)ambda表達(dá)式合并問題及解決方法2. JSP數(shù)據(jù)交互實(shí)現(xiàn)過程解析3. 淺談python出錯(cuò)時(shí)traceback的解讀4. 利用promise及參數(shù)解構(gòu)封裝ajax請求的方法5. Python importlib動(dòng)態(tài)導(dǎo)入模塊實(shí)現(xiàn)代碼6. python matplotlib:plt.scatter() 大小和顏色參數(shù)詳解7. windows服務(wù)器使用IIS時(shí)thinkphp搜索中文無效問題8. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向9. 在Android中使用WebSocket實(shí)現(xiàn)消息通信的方法詳解10. Nginx+php配置文件及原理解析
