Я создаю приложение React Native.Мне нужно реализовать подсказку о запросе на получение номера телефона пользователя с помощью API-интерфейса поиска SMS.Это мой код
SMSretreivermodule.java
@ReactMethod
public void requestHint(Promise requestHintSuccess) {
Activity currentActivity = getCurrentActivity();
requestHintCallback = requestHintSuccess;
Log.e(TAG, "Requesting hint rn");
if (currentActivity == null) {
requestHintCallback.reject("No Activity Found");
return;
}
try {
HintRequest hintRequest = new HintRequest.Builder().setPhoneNumberIdentifierSupported(true).build();
PendingIntent intent = Auth.CredentialsApi.getHintPickerIntent(apiClient, hintRequest);
currentActivity.startIntentSenderForResult(intent.getIntentSender(), RESOLVE_HINT, null, 0, 0, 0);
} catch (Exception e) {
//System.out.println(e);
Log.e(TAG, e.getMessage());
requestHintCallback.reject(e);
}
}
Я слушаю результат, подобный этому, в том же классе
SMSretreivermodule.java
private final ActivityEventListener mActivityEventListener = new BaseActivityEventListener() {
public void onActivityResult(Activity activity,int requestCode, int resultCode, Intent data) {
Log.d(TAG,"callback");
if (requestCode == RESOLVE_HINT) {
if (resultCode == Activity.RESULT_OK) {
Credential credential = data.getParcelableExtra(Credential.EXTRA_KEY);
// credential.getId(); <-- will need to process phone number string
requestHintCallback.resolve(credential.getId());
}
}
}
};
Проблема в том, что у меня есть onActivityResult в MainActivity.java.Это маскирует результат поступления в SMS-сообщение SMSretreivermodule.java и скорее возвращает результат здесь.
MainActivity.java
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
Log.e(TAG, String.valueOf(requestCode));
switch (requestCode) {
case REQUEST_LOCATION:
initBTScanning();
break;
case REQUEST_BLUETOOTH:
initBTScanning();
break;
case RESOLVE_HINT:
Log.e(TAG, "Here");
if (resultCode == Activity.RESULT_OK) {
Credential credential = data.getParcelableExtra(Credential.EXTRA_KEY);
// credential.getId(); <-- will need to process phone number string
Log.e(TAG, credential.getId());
//requestHintCallback.resolve(credential.getId());
}
break;
}
}
Как получить результат в Smsretrivermodule.java вместо моей MainActivity?