私はこの方法でロケーションプロバイダーを開始しています:
LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
Intent locationIntent = new Intent(context, LocationReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, locationIntent, PendingIntent.FLAG_UPDATE_CURRENT);
locationManager.requestLocationUpdates( LocationManager.NETWORK_PROVIDER,
MINIMAL_TIME,
MINIMAL_DISTANCE,
pendingIntent);
次に、私のレシーバーは次のように実装されます。
public void onReceive(Context context, Intent intent) {
if(intent.hasExtra(LocationManager.KEY_LOCATION_CHANGED)) {
Location location = (Location)intent.getExtras().get(LocationManager.KEY_LOCATION_CHANGED);
私の問題は次のとおりです。
Galaxy Nexus では、レシーバーがトリガーされることはありません。
以前に Google マップ アプリケーションを手動で起動した場合は、トリガーすることに成功しました。その後、問題なく動作します。電話をリセットすると (バッテリーを取り外します)、問題が再び発生します。
これに対する解決策はありますか?
私はstackoverflowで同様の問題をたくさん経験しましたが、有効な解決策は見つかりませんでした.
編集:
WiFi が無効化されて接続されていても、データ アクセスのない SIM を使用すると、この問題が発生することがわかりました。データ アクセスのある SIM を使用すると、この問題は発生しません。
Nexus One では、使用している SIM (データありまたはデータなし) に関係なく、この問題は発生しません。