У меня есть служба фона, которая вызывает GoogleAuthUtl.getTokenWithNotification
, и она работает правильно, но я пытаюсь реализовать часть обратного вызова этой функции, и она не работает должным образом.
Я реализовал широковещательный приемник и добавил его в манифест, у меня также есть активность в моем приложении. Ниже приведены соответствующие фрагменты кода.
GoogleAuthUtil.getTokenWithNotification
GoogleAuthUtil.getTokenWithNotification(this.getContext(), account, "oauth2:" + GmailScopes.GMAIL_SEND, null, new Intent(AuthReceiver.AUTH_INTENT));
AuthReceiver
public class AuthReceiver extends BroadcastReceiver
{
public final static String AUTH_INTENT = "com.testoauth.AUTH_INTENT";
public AuthReceiver()
{
}
@Override
public void onReceive(Context context, Intent intent)
{
Log.d("RECEIVER", "Received Auth broadcast.");
NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
notificationManager.cancelAll();
}
}
AndroidManifest
<receiver android:name=".AuthReceiver" android:enabled="true" android:exported="true">
<intent-filter>
<action android:name="com.testoauth.AUTH_INTENT" />
</intent-filter>
</receiver>
Я не знаю, почему он не получает трансляцию. Я не вижу каких-либо исключений в журналах и никаких указаний на то, что приемник был вызван вообще, он даже не сломает точку прерывания при отладке. Я что-то неправильно делаю?
ИЗМЕНИТЬ
Я использую min sdk 16 и target sdk 25
Из Документация API GoogleAuthUtil.getTokenWithNotification:
Этот метод специально предназначен для фоновых задач. в событие ошибки, требующее вмешательства пользователя, этот метод заботится нажимать соответствующее уведомление. После того, как пользователь обратится к уведомление, обратный вызов передается. Если пользователь отменяет обратный вызов не запускается.
Обратный вызов не запускается независимо от отмены пользователя или нет. Помимо ActivityManager
, указывающего, что уведомление было отображено (Displayed com.google.android.gms/.auth.uiflows.gettoken.GetTokenActivity
), нет указаний на то, что указанное задание трансляции (в данном случае com.testoauth.AUTH_INTENT
) было отправлено в журналы. "Полученная передача". сообщение также отсутствует в журналах.
Включенный пример SDK этой функции (<android-sdk>/extras/google/google_play_services/samples/auth/gau
) даже не работает.