要使用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> 

谢谢

Solutions Collecting From Web of "要使用Android位置pipe理器权限"

你需要这个

 <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的应用程序,则可以同时需要这两个选项。

问候,
斯特凡