要使用Android位置pipe理器权限

我在我的android项目中有以下代码:

locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); Criteria criteria = new Criteria(); bestProvider = locationManager.getBestProvider(criteria, false); Location currentLocation = locationManager.getLastKnownLocation(bestProvider); location = currentLocation.getLatitude() + " " + currentLocation.getLongitude(); MyLocation.setText(location); 

我得到一个provider == null错误。 我需要使用什么权限

我的Android清单文件是:

 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.DuckTag" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".DuckTagActivity" 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> </manifest> 

谢谢

  • LocationManager的Android检查权限
  • 通过networking请求位置更新的问题
  • 为什么不调用Android的onProviderEnabled()方法?
  • 每当我要求位置更新时,我应该使用android LocationManager.getBestProvider吗?
  • isProviderEnabled(LocationManager.NETWORK_PROVIDER)返回false
  • Android GPS位置的getAltitude()如何工作
  • java.lang.SecurityException:无效的包名称:com.google.android.gms
  • getSystemService()如何正常工作?
  • 你需要这个

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

    这是你需要添加到你的清单文件

    基于GPS的位置

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

    基于networking的位置

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

    以前的海报是错误的,如果你想使用两个,那么只有ACCESS_FINE_LOCATION是必需的,详细在这里: http : //developer.android.com/guide/topics/location/obtaining-user-location.html

    注意:如果您同时使用NETWORK_PROVIDER和GPS_PROVIDER,那么您只需要请求ACCESS_FINE_LOCATION权限,因为它包含两个提供者的权限。 (ACCESS_COARSE_LOCATION的权限仅包含NETWORK_PROVIDER的权限。

    以下是您需要添加到清单文件的内容:

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

    为基于GPS的位置或

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

    为基于networking的位置

    如果您想构build更多function的应用程序,则可以同时需要这两个选项。

    问候,
    斯特凡