Android studio java.lang.SecurityException:需要 INSTALL_LOCATION_PROVIDER 权限

2024-01-02

我正在android工作室工作。我正在移动应用程序上获取实时 GPS 坐标。在每个移动设备上都会生成坐标,但单个移动设备无法工作并给出zero(0)坐标有android版本9。下面是我的代码

@SuppressLint("MissingPermission")
 public Location getLocation() {
    try {
        locationManager = (LocationManager) mContext
                .getSystemService(LOCATION_SERVICE);

        // getting GPS status
        isGPSEnabled = locationManager
                .isProviderEnabled(LocationManager.GPS_PROVIDER);

        // getting network status
        isNetworkEnabled = locationManager
                .isProviderEnabled(LocationManager.NETWORK_PROVIDER);

        if (!isGPSEnabled && !isNetworkEnabled) {
            // no network provider is enabled
        } else {
            this.canGetLocation = true;
            if (isNetworkEnabled) {
                locationManager.requestLocationUpdates(
                        LocationManager.NETWORK_PROVIDER,
                        MIN_TIME_BW_UPDATES,
                        MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                Log.d("Network", "Network");
                if (locationManager != null) {
                    location = locationManager
                            .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
                    if (location != null) {
                        latitude = location.getLatitude();
                        longitude = location.getLongitude();
                    }
                }
            }
            // if GPS Enabled get lat/long using GPS Services
            if (isGPSEnabled) {
                if (location == null) {
                    locationManager.requestLocationUpdates(
                            LocationManager.GPS_PROVIDER,
                            MIN_TIME_BW_UPDATES,
                            MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
                    Log.d("GPS Enabled", "GPS Enabled");
                    if (locationManager != null) {
                        location = locationManager
                                .getLastKnownLocation(LocationManager.GPS_PROVIDER);
                        if (location != null) {
                            latitude = location.getLatitude();
                            longitude = location.getLongitude();
                        }
                    }
                }
            }
        }

    } catch (Exception e) {
        e.printStackTrace();
    }

    return location;
}

Gradle

android {
compileSdkVersion 33
defaultConfig {
    applicationId "com.example.wrflhr.wrfnanbookings"
    minSdkVersion 19
    targetSdkVersion 33
    versionCode 3
    versionName "3.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    vectorDrawables.useSupportLibrary = true

}
buildTypes {
    release {
        minifyEnabled false
        debuggable false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}

如何摆脱这个问题?我被困了这么多天 任何帮助将不胜感激。


android.permission.INSTALL_LOCATION_PROVIDER权限属于系统或签名权限,这意味着只有系统应用程序可以请求此权限。

仅允许 OEM 安装新的位置提供程序。第三方开发人员无法向其应用程序授予安装新位置提供程序所需的权限 (android.permission.INSTALL_LOCATION_PROVIDER)。阅读主题 https://stackoverflow.com/a/12730719/16177121

根据文档 https://developer.android.com/reference/android/Manifest.permission.html#INSTALL_LOCATION_PROVIDER

允许应用程序将位置提供程序安装到位置管理器中。

不供第三方应用程序使用。

常量值:“android.permission.INSTALL_LOCATION_PROVIDER”

为了请求此权限,您必须将您的应用程序签名为系统应用程序。See How https://stackoverflow.com/q/37586255/16177121

为了安装新的位置提供程序,您必须 root 您的 Android 设备,或者您必须开发全新的固件。阅读主题 https://stackoverflow.com/a/3477237/16177121

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android studio java.lang.SecurityException:需要 INSTALL_LOCATION_PROVIDER 权限 的相关文章

随机推荐

  • 在 Flutter 中声明样式文件

    我想知道在 Flutter 中实现带有我所有颜色信息和文本样式的样式文件的最佳方式是什么 浏览一些教程 有些教程似乎使用抽象类 而另一些教程则使用函数 导入的方式也不同 从性能 便利性 组织角度来看 做到这一点的最佳方法是什么 或者我应该完
  • 如何获得特定维度上张量的 MSE?

    我有 2 个张量 size of torch Size 2272 161 我想得到它们之间的均方误差 然而 我希望它沿着 161 个通道中的每一个通道 这样我的误差张量就有 size of torch Size 161 我怎样才能做到这一点
  • 如何在同一页面中拥有多个 jQuery 颜色框

    我有一个页面需要从多个位置打开颜色框 一种是在文档就绪函数中如下 a rel q1 colorbox opacity 0 8 width 800px height 75 另一个需要从谷歌图表中打开一个完全不相关的颜色框 并在 onclick
  • 64 位除以 32 位

    我正在寻找一种快速的方法来执行以下除法 被除数是一个有符号的 64 位整数 除数是一个有符号的 32 位整数 商应该是有符号的 64 位整数 不需要余数 低位 dword 的除数为零 我只使用 32 位数据类型 因为编译器对 64 位数据类
  • 我可以在多处理池星图方法中传递队列对象吗[重复]

    这个问题在这里已经有答案了 关于在 python 多处理池的 starmap 方法中传递多个参数 SO 中有很多问题 但我想问的是 我是否可以在方法中发送一个可以在不同进程之间共享的队列对象 我可以使用线程和多处理 Process 方法来完
  • pyparsing 可能包含或不包含值的字段

    我有一个类似于以下内容的数据集 Capture MICR Serial Pos44 Trrt 32904 Acct Tc 2064 Opt4 Split 我遇到的问题是我不知道如何正确编写 捕获 MICR 串行字段 的捕获 该字段可以为空
  • 指令模板函数的角度访问范围

    我有一个具有模板功能的指令 restrict E A is the default so you could remove this line scope field field template function element attr
  • 是否可以设置 TextBoxFor 生成的输入类型

    我在表单中使用 ASP NET MVC 3 TextBoxFor 并希望使用 type email 以便至少在某些移动设备上更轻松地输入 但找不到如何使用 TextBoxFor 设置它 这不是很容易就能实现的吗 In View Html L
  • 如何在 flutter 中使用 getx 使列表可观察

    我正在观看有关使用 Getx 和 API 的教程 设置用于获取数据的控制器后 我们声明了一个列表变量并使其可观察 obs 但列表格式已被弃用 你能帮我吗我现在该怎么做 var products List
  • 无法使用 IIS 7 加载图像

    我正在构建一个新的 Web 服务器 并且正在重新部署一个在 IIS6 中正常工作的 ASP Net 站点 不幸的是 没有任何图像正在加载 我收到了 404 错误 图像位于正确的文件夹中 我什至可以导航到网站中的正常页面 有什么建议么 可能是
  • Seabornpairplot 色调参数未按预期工作

    如果将 C 指定为 hue 参数的值 则预计 Seaborn 不会显示 C 列 我错了吗 sns pairplot df hue C 数据框 默认情况下 seaborn 将显示所有数字列 因此 如果您的 色调 列 在您的情况下为 C 列为字
  • 为 highchart 中的两个系列之一设置 minPointLength

    我的高图中有两个数据系列 并且只想对其中一个使用 minPointLength 这个可以设置吗 我的系列仅包含 名称 颜色和数据 我的图表配置如下所示 const chartConfig chart type column dashStyl
  • 如何安装源自 apt 包的 Python 绑定?

    我有一个网站托管在Heroku http heroku com 我现在想使用python qrtools包使用了ZBar条码扫描器 http zbar sourceforge net 在常规的 debian 基于 上 我可以做一个简单的操作
  • 为什么我无法在另一个文件中定义内联成员函数?

    我有三个文件 1 Joy h class Joy public void test 2 Joy cpp include Joy h inline void Joy test 3 main cpp include Joy h int main
  • 如何解决访问 CollabNet Subversion 控制台时出现 503 错误?

    我正在使用 Collabnate Subversion Edge 尝试访问 URL 时出现以下错误http localhost 3343 csvn http localhost 3343 csvn Collbnate 在 Windows S
  • 将 git 存储库移至第二台计算机?

    我有一个带有简单本地 git 存储库的项目 我想要move将该项目 文件夹等 转移到另一台计算机 并从现在开始从那里开始工作 我不想在旧机器上留下任何东西 当然除了我的其他 git 项目 我希望它就像我一直在新机器上工作一样 我可以简单地将
  • 405(不允许的方法)Laravel

    我在 Laravel 中尝试使用 ajax 删除项目时收到 405 方法不允许 请有人帮忙 这是我的路线 Route get home HomeController index gt name home Route post destroy
  • long long 在 32 位机器上的实现

    根据c99标准 尺寸为long long至少应为 64 位 这是如何在 32 位机器中实现的 例如 2 的加法或乘法 long longs 另外 什么相当于long long in C C 中的等效项也是 long long 标准并不要求它
  • 客户端无法连接到本地主机上的 RabbitMQ 服务器

    我通过 apt get 在 ubuntu 12 04 2 LTS 上安装了新的 RabbitMQ 3 1 3 并尝试在同一台服务器上启动消费者 但我遇到了连接问题 PhpAmqpLib Exception AMQPRuntimeExcept
  • Android studio java.lang.SecurityException:需要 INSTALL_LOCATION_PROVIDER 权限

    我正在android工作室工作 我正在移动应用程序上获取实时 GPS 坐标 在每个移动设备上都会生成坐标 但单个移动设备无法工作并给出zero 0 坐标有android版本9 下面是我的代码 SuppressLint MissingPerm