GPS とネットワーク プロバイダーの両方を試しましたが、getLastKnownLocation の場所が null になります。onLocationChanged も取得しません。電波の強いアパートから試しています。インターネットをよく閲覧したり、市場からアプリをダウンロードしてインストールしたりすることもできます。
同じトピックに関するいくつかのスレッドを読みましたが、彼らの提案は私がすでに試したようです.
これが私のコードスニペットです。
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
locationManager = (LocationManager) getSystemService(LOCATION_SERVICE);
if(null == locationManager) {
Log.d(TAG, "location manager NULL");
}
geocoder = new Geocoder(this);
// Initialize with the last known location
Location lastLocation = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (lastLocation != null)
onLocationChanged(lastLocation);
else
Log.i(TAG, "null LastKnownLocation");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// TODO Auto-generated method stub
super.onStartCommand(intent, flags, startId);
locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,
0,0, this);
Log.d(TAG, "requested location updates");
return START_STICKY;
}
ログによると:
mitenm@pinkydebian:/media/sf_E_DRIVE/tmp$ adb logcat LocationNotifierService:* *:S
--------- beginning of /dev/log/system
--------- beginning of /dev/log/main
I/LocationNotifierService(30866): null LastKnownLocation
D/LocationNotifierService(30866): gps provider enabled:true
D/LocationNotifierService(30866): network provider enabled:true
D/LocationNotifierService(30866): onCreate
D/LocationNotifierService(30866): requested location updates
D/LocationNotifierService(30866): requested location updates
D/LocationNotifierService(30866): requested location updates
「受信機のロック解除」があるため、画面のロックを解除すると、ログから期待どおりに機能する位置情報の更新を要求します。しかし、onLocationChanged メソッドは呼び出されていません。
細かいものと粗いものの両方のマニフェストに許可を追加しました。
よろしく、
みてん。