Я пытаюсь сделать клон приложения Uber Driver.Я рассмотрел эту часть, когда после получения уведомления о запросе клиента приложение предложит пользователю выбрать приложение для выбора стороннего приложения (например, Google Map или Waze), чтобы перейти к местоположению клиента после того, как пользователь решил принять запрос клиента.
public static final int APP_CHOOSER_LOCATION = 101;
acceptBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String uri = "geo:" + locationInfo.getLatitude() + ","
+locationInfo.getLongitude() + "?q=" + locationInfo.getLatitude()
+ "," + locationInfo.getLongitude();
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivityForResult(intent, APP_CHOOSER_LOCATION);
isBack = true;
}
});
Итак, проблема в том, как узнать, что пользователь закончил навигацию?Мое текущее решение - поставить индикатор isBack
.По умолчанию это будет false
.Когда пользователь нажимает принять, isBack
устанавливается на true
.Таким образом, в функции onResume, если isBack
равно true
, он продолжит открывать другое действие.
@Override
public void onResume(){
super.onResume();
if(isBack){
// Proceed to open another actvity
isBack = false;
}
}
Однако это не будет работать, если пользователь нажмет ОтменаКнопка .
Снимок экрана приложения Chooser
Я пытался использовать onActivityResult
, но resultCode
всегда показывает 0 (или RESULT_CANCELED
) независимо от того, какое приложение я нажал.
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.i(TAG, "in onActivityResult ");
Log.i(TAG, "resultCode:: "+resultCode);
if (requestCode == APP_CHOOSER_RESPONSE){
if(resultCode == RESULT_OK){
Log.i(TAG, "user select app ");
if(isBack){
// Proceed to open another activity
isBack = false;
}
}
if(resultCode == RESULT_CANCELED){
Log.i(TAG, "is cancelled by user ");
isBack = false;
}
}
}
Мой подход неверен?Или я что-то пропустил в своем коде?Я застрял здесь, и я не знаю, как поступить.Любой совет приветствуется.