【问题标题】:java.lang.SecurityException: Requires ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION permissionjava.lang.SecurityException:需要 ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION 权限
【发布时间】:2011-09-21 22:13:06
【问题描述】:

我正在开发一个 android,我想使用 NETWORK_PROVIDER 获取用户位置,我没有为此使用 GPS。我遇到了以下异常

java.lang.SecurityException:需要 ACCESS_FINE_LOCATION 或 ACCESS_COARSE_LOCATION 权限

我正在使用以下代码。]

tx=(TextView) findViewById(R.id.textView1);
    lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 1000,
    10f, this);
    tx.setText("Status="+lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER));

和清单文件

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".MainActivity" android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
</application>

【问题讨论】:

    标签: android geolocation


    【解决方案1】:

    权限放在清单标签中(而不是在应用程序标签中),即

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="package.mypackage" android:versionCode="1" android:versionName="1.2">
    <uses-sdk android:minSdkVersion="7" />
    
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".MainActivity" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    
    </application>
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    </manifest>
    

    【讨论】:

      【解决方案2】:

      请尝试

      <application android:icon="@drawable/icon" android:label="@string/app_name">
      <activity android:name=".MainActivity" android:label="@string/app_name">
          <intent-filter>
              <action android:name="android.intent.action.MAIN" />
              <category android:name="android.intent.category.LAUNCHER" />
          </intent-filter>
      </activity>
      </application>
      
      <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
      <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      <uses-permission android:name="android.permission.INTERNET" />
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-12-24
        相关资源
        最近更新 更多