0

私はこの方法でロケーションプロバイダーを開始しています:

    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 (データありまたはデータなし) に関係なく、この問題は発生しません。

4

0 に答える 0