分享一段Android許可權設定的程式碼
檢查是否有通知欄許可權
NotificationManagerCompat.from(context).areNotificationsEnabled()
開啟通知欄許可權設定頁
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Build
import android.provider.Settings
object NotificationUtil {
//呼叫該方法獲取是否開啟通知欄許可權
fun goToNotificationSetting(context: Context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//這種方案適用於 API 26, 即8.0(含8.0)以上可以用
try {
val intent = Intent()
intent.action = Settings.ACTION_APP_NOTIFICATION_SETTINGS
intent.putExtra(Settings.EXTRA_APP_PACKAGE, context.packageName)
intent.putExtra(Settings.EXTRA_CHANNEL_ID, context.applicationInfo.uid)
context.startActivity(intent)
} catch (e: Exception) {
toPermissionSetting(context)
}
} else {
toPermissionSetting(context)
}
}
/**
* 跳轉到許可權設定
*
* @param activity
*/
private fun toPermissionSetting(activity: Context) {
if (Build.VERSION.SDK_INT <= Build.VERSION_CODES.LOLLIPOP_MR1) {
toSystemConfig(activity)
} else {
try {
toApplicationInfo(activity)
} catch (e: java.lang.Exception) {
L.printStackTrace(e)
toSystemConfig(activity)
}
}
}
/**
* 應用資訊介面
*
* @param activity
*/
private fun toApplicationInfo(activity: Context) {
try {
val localIntent = Intent()
localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
localIntent.action = Settings.ACTION_APPLICATION_DETAILS_SETTINGS
localIntent.data = Uri.fromParts("package", activity.packageName, null)
activity.startActivity(localIntent)
} catch (e: java.lang.Exception) {
L.printStackTrace(e)
}
}
/**
* 系統設定介面
*
* @param activity
*/
private fun toSystemConfig(activity: Context) {
try {
val intent = Intent(Settings.ACTION_SETTINGS)
activity.startActivity(intent)
} catch (e: java.lang.Exception) {
L.printStackTrace(e)
}
}
}
相關文章
- 小程式許可權設定(位置)
- Linux 筆記分享八:檔案許可權的設定Linux筆記
- 選單許可權和按鈕許可權設定
- android 許可權元件設計Android元件
- Android平臺targetSdkVersion設定及動態許可權Android
- ubuntu 許可權管理設定Ubuntu
- Linux 如何設定特殊許可權?Linux
- Android SELinux許可權AndroidLinux
- Android 通知許可權Android
- drf 許可權校驗設定與原始碼分析原始碼
- 呼叫者許可權與定義者許可權的pl/sql子程式SQL
- 傳奇GM許可權命令設定教程,傳奇分享匯
- NAS使用者許可權的設定
- 金山文件怎麼設定編輯許可權 金山文件線上編輯許可權設定
- Vue設定許可權列表目錄Vue
- android動態許可權到自定義許可權框架Android框架
- android 許可權庫EasyPermissionsAndroid
- 【Git】程式碼許可權&分支管理Git
- 如何使用Linux使用者身份與程式許可權的設定?Linux
- [BUG反饋]許可權條目中缺少兩個公開方法的許可權設定
- Android 中的危險許可權Android
- PostgreSQL物件許可權如何在後設資料中獲取-許可權解讀、定製化匯出許可權SQL物件
- windows10許可權怎麼設定_win10設定使用者許可權的方法WindowsWin10
- Android應用中,跳轉到App的詳細設定頁面,設定許可權頁面AndroidAPP
- windows10管理員許可權怎麼設定_win10電腦設定管理員許可權的步驟WindowsWin10
- win10怎麼設定防火牆許可權_win10電腦防火牆許可權如何設定Win10防火牆
- SharePoint Online 站點模板中許可權的設定
- Android6.0------許可權申請管理(單個許可權和多個許可權申請)Android
- Android程式保活(二):利用 Notification 提升許可權Android
- 許可權設計
- 關於公司程式碼許可權的問題
- 探索Android Q上的位置許可權Android
- MongoDB使用者許可權管理,設定密碼並連線MongoDB密碼
- openGauss 設定檔案許可權安全策略
- 兩個關於許可權設定的問題思考
- win10 資料夾許可權怎麼設定_win10如何設定資料夾訪問許可權Win10訪問許可權
- android 6.0許可權機制的簡單封裝(支援批量申請許可權)Android封裝
- Android多程式之Binder的意外死亡及許可權校驗Android