19

GPS ステータスが変更されたときに更新を受信するように、ブロードキャスト レシーバーを登録しようとしています。

ただし、gps ステータスが有効から無効に、またはその逆に変更された場合、私の GpsChangeReceiver onReceive メソッドは呼び出されないようです。

まず、受信者を登録しています:

GpsChangeReceiver m_gpsChangeReceiver = new GpsChangeReceiver();
this.registerReceiver(m_gpsChangeReceiver, new IntentFilter(LocationManager.PROVIDERS_CHANGED_ACTION));

それから、私は私の GPS 受信機を持っています

public class GpsChangeReceiver extends BroadcastReceiver
{   
  @Override
  public void onReceive( Context context, Intent intent )
  {
    final LocationManager manager = (LocationManager) context.getSystemService( Context.LOCATION_SERVICE );
    if (manager.isProviderEnabled( LocationManager.GPS_PROVIDER ) ) {
        //do something
    }
    else
    {
        //do something else
    }
  }
}

最後に、私のマニフェストには以下が含まれます。

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

電話の設定からステータスを変更すると、GPSレシーバーが呼び出されない理由を誰でも見ることができますか??

4

1 に答える 1