摘要:在使用gps位置服务中的String provider = locationManager.getBestProvider(criteria, true);时出现provider == null,一般都是权限问题,虽然看起来是加了地图应有的权限,但是出现这个问题,还是provider需要的权限未加进去;
附:在写定时器时出现nullexpetion,其写法如下
mTimer = new Timer();
// 打开定时器
mTimer.schedule(new TimerTask() {
@Override
public void run() {
Log.v("location", location + "%%");
gpsData(location); // 调用获取GPS数据函数
mHandler.obtainMessage(1).sendToTarget();
}, time, time);
}
以上2 个基本问题解决方法如下:
1.在 mTimer.schedule(new TimerTask() {}前加入一个判断,如
if (location != null) { // 没有定位数据就无需开启加速度传感器}
2.provider所需权限
<uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<!-- <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"></uses-permission> -->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<!-- SDK1.5需要android.permission.GET_TASKS权限判断本程序是否为当前运行的应用? -->
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />