Добавление оповещения о близости на android - PullRequest
0 голосов
/ 23 марта 2020

Я хочу, чтобы мое приложение запускало определенный код, когда пользователь прибывает в пункт назначения, для этого я пытаюсь использовать LocationManager.addProximityAlert, но оно просто не запускается.

Короче говоря, я думал, что мне нужно:

  1. Реализовать BroadcastReceiver
  2. Зарегистрировать получателя
  3. Направить намерение оповещения получателю

Вот мой соответствующий код:

//MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    Intent intent = new Intent(this, ProximityReceiver.class);
    intent.setAction("action");
    PendingIntent pendingIntent = PendingIntent.getService(this, 0, intent, 0);

    LatLng destination = new LatLng(47.422, -121.86);

    //Permission requests and checks omitted for simplicity
    locationManager.addProximityAlert(destination.latitude,
            destination.longitude, 10000, -1,
            pendingIntent);

    registerReceiver(new ProximityReceiver(), new IntentFilter("action"));
}

//ProximityReceiver.java
public class ProximityReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, "Proximity request fired", Toast.LENGTH_SHORT).show();
    }
}

Но в итоге предупреждение просто не срабатывает, я что-то упустил? (Обратите внимание, что я тестирую это на android studio через эмулятор, отправив другую долготу и затем установив ее обратно в -121.86)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...