#java #android #broadcastreceiver
#java #Android #broadcastreceiver
Вопрос:
Я пытаюсь отправить электронное письмо в фоновом режиме. Для достижения этой цели я использую эту библиотеку: library, поэтому я создал BroadcastReceiver с кодом библиотеки. Но, к сожалению, у меня ошибка при попытке отправить электронное письмо: невозможно добавить окно — токен null недействителен; выполняется ли ваша активность?Я пытаюсь передать контекст из Activity в BroadcastReceiver, но я думаю, что контекст в Receiver является каким-то отдельным только для этого оператора. Любой совет, чтобы избежать этой ошибки?
Манифест
<receiver
android:name=".service.EmailReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="BackgroundProcessEmail" />
</intent-filter>
</receiver>
BroadcastReceiver
@Override
public void onReceive(final Context context, Intent intent) {
String email=intent.getStringExtra("email");
String password=intent.getStringExtra("password");
String deviceModel = Build.MANUFACTURER
" " Build.MODEL;
assert email != null;
assert password != null;
BackgroundMail.newBuilder(context)
.withUsername(email)
.withPassword(password)
.withSenderName("Full")
.withMailTo("email")
.withType(BackgroundMail.TYPE_PLAIN)
.withSubject("Your device " deviceModel " achieved")
.withBody("")
.withSendingMessage("Sending email")
.withOnSuccessCallback(new BackgroundMail.OnSendingCallback() {
@Override
public void onSuccess() {
}
@Override
public void onFail(Exception e) {
Toasty.error(context, "E-mail sent error" e.getMessage(), Toasty.LENGTH_LONG).show();
}
})
.send();
}