- 0
Как получить результат отправки СМС, корректно получить Activity.RESULT через broadcast
-
Похожий контент
-
- 11 ответов
- 2 185 просмотров
-
- 1 ответ
- 1 960 просмотров
-
- 0 ответов
- 1 734 просмотра
-
- 6 ответов
- 2 065 просмотров
-
[Android] Как удалить SMS на андроиде, начиная с Android 5?
От lev.vorobyov,
- Удаление SMS
- Android
- (и ещё 1 )
- 5 ответов
- 3 971 просмотр
-
Использование нативных LocalBroadcastManager и BroadcastReceiver 1 2
От Pax Beach,
- broadcastreceiver
- timer
- (и ещё 2 )
- 30 ответов
- 7 386 просмотров
-
- 3 ответа
- 2 944 просмотра
-
- 10 ответов
- 10 457 просмотров
-
-
Последние посетители 0 пользователей онлайн
- Ни одного зарегистрированного пользователя не просматривает данную страницу
Вопрос
ENERGY
Привет.
Для отправки смс используется SMSManager и его функция.
Описание ее на сайте developer.android.com . Для того чтобы узнать статус отправлена смс или нет, нужно указать предпоследний параметр
sentIntent
PendingIntent
: if not NULL thisPendingIntent
is broadcast when the message is successfully sent, or failed. The result code will beActivity.RESULT_OK
for success, or one of these errors:RESULT_ERROR_GENERIC_FAILURE
RESULT_ERROR_RADIO_OFF
RESULT_ERROR_NULL_PDU
.Я также нашел описание как добавить этот параметр на StackOverflow, но там не указаны детали.
Вот что пишет этот человек: You have to createIntent objects first, THEN create PendingIntent objects to wrap those Intent objects, THEN pass the PendingIntent objects to sendTextMessage() and use a broadcastReceiver to receive the Intent objects.
Итак я создаю интент, и оборачиваю его в PendingIntent по аналогии со статьей Андрея Ефимова:
// Создаём Интент
Intent := TJIntent
.
Create;
Intent
.
setClassName(TAndroidHelper
.
Context, StringToJString(
'com.TestReceiver.AlarmReceiver'
));
// Оборачиваем Интент в PendingIntent
PendingIntent := TJPendingIntent
.
JavaClass
.
getBroadcast(TAndroidHelper
.
Context,
1
, Intent,
0
);
И вставляю это
PendingIntent в код
sendTextMessage
Когда вернутся код ошибки SMS, то насколько я понял сработает ява код, на который зарегистрирован прием:
package
com.TestReceiver;
import
android.content.BroadcastReceiver;
import
android.content.Context;
import
android.content.Intent;
public
class
AlarmReceiver
extends
BroadcastReceiver {
public
void
onReceive(Context context, Intent intent) {
Intent TestLauncher =
new
Intent();
TestLauncher.setClassName(context,
"com.embarcadero.firemonkey.FMXNativeActivity"
);
TestLauncher.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(TestLauncher);
}
}
Вопрос в следующем:
Как мне эту цифру с ошибкой Activity.RESULT_OK (или RESULT_ERROR_GENERIC_FAILURE или любой другой) вытащить оттуда и передать в программу?
Upd1:
Это результат вызова из Java кода метода
getResultCode().
Можно ли
getResultCode
вызвать из Delphi, а не из Java кода?Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.