Android6.0獲取動態(tài)權(quán)限代碼示例
Android系統(tǒng)對所有的危險權(quán)限進(jìn)行了分組,稱為 權(quán)限組 。屬于同一組的危險權(quán)限將自動合并授予,用戶授予應(yīng)用某個權(quán)限組的權(quán)限,則應(yīng)用將獲得該權(quán)限組下的所有權(quán)限(前提是相關(guān)權(quán)限在 AndroidManifest.xml 中有聲明)。
危險權(quán)限 和 權(quán)限組 列表如下: 在 AndroidManifest.xml 聲明過的危險權(quán)限對應(yīng)的權(quán)限組可以在系統(tǒng) “設(shè)置” -> “應(yīng)用” -> “應(yīng)用信息” -> “權(quán)限” 中查看,可以手動授權(quán)和取消授權(quán)。
1、設(shè)備系統(tǒng)是 Android 6.0 (API 23) 或更高版本,并且應(yīng)用的 targetSdkVersion 是 23 或更高版本,則針對在 AndroidManifest.xml 中聲明的危險權(quán)限,在運(yùn)行時還需要動態(tài)請求用戶授權(quán)。
2、動態(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)限封裝到一個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(); }
我通常將上述代碼寫在另一個方法中,然后在onCreate()方法中調(diào)用。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. idea重置默認(rèn)配置的方法步驟2. IntelliJ IDEA安裝插件的方法步驟3. Docker 部署 Prometheus的安裝詳細(xì)教程4. 通過Django Admin+HttpRunner1.5.6實(shí)現(xiàn)簡易接口測試平臺5. IntelliJ IDEA設(shè)置自動提示功能快捷鍵的方法6. IntelliJ IDEA設(shè)置背景圖片的方法步驟7. idea設(shè)置代碼格式化的方法步驟8. idea給項(xiàng)目打war包的方法步驟9. idea打開多個窗口的操作方法10. IntelliJ IDEA調(diào)整字體大小的方法

網(wǎng)公網(wǎng)安備