minSdkVersion 23
权限申请
以申请 电话权限 为例,主要代码如下:
if (ActivityCompat.checkSelfPermission(
activity,
Manifest.permission.CALL_PHONE
) != PackageManager.PERMISSION_GRANTED
) {
val shouldShow: Boolean =
ActivityCompat.shouldShowRequestPermissionRationale(
activity,
Manifest.permission.CALL_PHONE
)
if (shouldShow)
{
弹出一个对话框,是否跳转到设置中允许权限。。。
val toast = Toast.makeText(activity, "请在设置中打开电话权限", Toast.LENGTH_LONG)
toast.setGravity(Gravity.CENTER, 0 ,0)
toast.show()
return
}
ActivityCompat.requestPermissions(activity, Array(1){Manifest.permission.CALL_PHONE}, 1)
return
}
这里是有权限,去拨打电话
跳转到设置页
/**
* 跳转到 app信息
*/
fun toAppDetailSettings(context: Context) {
val intent: Intent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS, Uri.fromParts("package", context.packageName, null))
val activities: List<ResolveInfo> = context.packageManager.queryIntentActivities(intent, 0)
if (activities.isNotEmpty()) context.startActivity(intent)
}
/**
* 跳转到手机系统设置
*/
fun toSysSettings(context: Context) {
toSettings(Settings.ACTION_SETTINGS, context)
}
/**
* 跳转到定位设置
*/
fun toLocationSettings(context: Context) {
toSettings(Settings.ACTION_LOCATION_SOURCE_SETTINGS, context)
}
/**
* 跳转到Wifi设置
*/
fun toWifiSettings(context: Context) {
toSettings(Settings.ACTION_WIFI_SETTINGS, context)
}
/**
* 跳转到某个设置
*/
fun toSettings(settings: String, context: Context) {
val intent: Intent = Intent(settings)
val activities: List<ResolveInfo> = context.packageManager.queryIntentActivities(intent, 0)
if (activities.isNotEmpty()) context.startActivity(intent)
}
网友评论