You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android中构建Intent调起应用自身的Location permission设置页面

实现方案

Android 11(API 30及以上)系统原生提供了跳转应用专属位置权限设置页的能力,你看到的Zepp应用就是调用了官方提供的API实现的该功能,不需要使用厂商私有接口,全机型通用。

位置权限设置页示例

核心代码

Kotlin 实现
// 仅在Android 11及以上生效
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
    val locationPermissionIntent = Intent(Settings.ACTION_APP_LOCATION_PERMISSION_SETTINGS).apply {
        // 传入当前应用的包名,确保只跳转当前应用的权限设置页
        data = Uri.fromParts("package", packageName, null)
    }
    startActivity(locationPermissionIntent)
} else {
    // 低于Android 11的降级方案,跳转应用详情页
    val appDetailIntent = Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS).apply {
        data = Uri.fromParts("package", packageName, null)
    }
    startActivity(appDetailIntent)
}
Java 实现
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
    Intent locationPermissionIntent = new Intent(Settings.ACTION_APP_LOCATION_PERMISSION_SETTINGS);
    locationPermissionIntent.setData(Uri.fromParts("package", getPackageName(), null));
    startActivity(locationPermissionIntent);
} else {
    Intent appDetailIntent = new Intent(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
    appDetailIntent.setData(Uri.fromParts("package", getPackageName(), null));
    startActivity(appDetailIntent);
}

注意事项

  • 该API为系统原生提供,所有符合Android兼容性规范的ROM都可以正常调用,无兼容性问题
  • 建议在触发跳转前,先向用户说明需要后台位置权限的业务场景,符合Google Play的权限申请规范要求
  • 可以先调用ActivityCompat.checkSelfPermission()接口检测当前权限授予状态,仅在未获得权限时触发跳转,避免打扰已授权用户

内容的提问来源于stack exchange,提问作者Maurício Lima

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:36:04