当前位置: 首页 > 知识库问答 >
问题:

ACCESS_FINE_LOCATION权限

於和志
2023-03-14
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.szymon.gpslab1"
android:versionCode="15"
android:versionName="4.0.3">

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:theme="@style/AppTheme.NoActionBar" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>
</manifest>
public class MainActivity extends AppCompatActivity {
LocationManager locationManager;
LocationListener locationListener;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    locationListener = new MyLocationListener();

    locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, locationListener);
}
private class MyLocationListener implements LocationListener{

    @Override
    public void onLocationChanged(Location location) {
        System.out.println("ZMIENIAMY SIĘ, zmieniamy siebie");
    }

    @Override
    public void onStatusChanged(String provider, int status, Bundle extras) {

    }

    @Override
    public void onProviderEnabled(String provider) {

    }

    @Override
    public void onProviderDisabled(String provider) {

    }
}
}
FATAL EXCEPTION: main  
Process: com.example.szymon.gpslab1, PID: 3274  
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.szymon.gpslab1/com.example.szymon.gpslab1.MainActivity}: java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.  

Caused by: java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.  

啊,我的模拟器里有位置。

共有1个答案

桂高昂
2023-03-14

如果您的目标SDK在您的构建中为23,这是一个常见的异常

Android6.0/SDK23引入了一种新的请求权限的方式。

有关如何处理权限,请参见下面的链接:

 类似资料:
  • 我有一个奇怪的错误,而只使用模拟器。我发现9个月前的一个问题也有同样的问题,但根本没有答案。 我正在使用google play服务的位置获取我的应用程序中的位置,我确信我的清单权限和一切工作在我的手机上是完美的,问题发生在只使用一个模拟器的时候,我在我的iMac和Windows机器上尝试了不同的模拟器。 我怀疑模拟器不支持这个基本功能! 下面是我的清单代码: 这里是触发异常的地方: 堆栈跟踪:

  • 我在谷歌上搜索了很久,仍然没有解释“为什么?”在设备之间建立脱机(无internet)连接需要这些权限。我有一个简单的应用程序,它只需要p2p-star策略,以主从模式在设备之间交换数据,我很难向我的用户解释为什么我的应用程序需要它们。“就因为lib这么说。这就是为什么”。 官方文件也对我只字不提。 “这个API的一个主要目标是提供一个简单、可靠和性能良好的平台。在底层,API使用了蓝牙、BLE和

  • 这是我的完整代码。 } 此外,我已经在清单文件中给予了许可。 10-24 17:13:02.857 222 4-2379/com.example.ashutosh.location e/abstractTracker:无法在未调用looper.prepare()的线程内创建处理程序0-24 17:13:03.184 2222 4-2224/com.example.ashutosh.location

  • 接口管理的逻辑较为复杂,操作频率高,层层审批将严重拖慢生产效率,因此传统的金字塔管理模式并不适用。 YApi 将扁平化管理模式的思想引入到产品的权限管理中,超级管理员 拥有最高的权限,并将权限分配给若干 组长,超级管理员 只需管理组长 即可,实际上管理YAPI各大分组与项目的是“组长”。组长对分组或项目负责,一般由BU负责人/项目负责人担任。 认识组长 组长分为 分组组长 与 项目组长,他们的关系

  • 每次运行应用程序时,我的SecurityException都会被抛出,调试器的错误如下所示: java.lang.SecurityException:"gps"位置提供程序需要ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION权限。 这似乎是一个简单的错误,但是,我的清单文件是完全正确的。这是它,这也是我的Mapactive代码: 我的活动: