App doesn't show firebase notifications (broadcast intent callback: result=CANCELLED forIntent)

荒凉一梦 提交于 2019-12-10 19:21:23

问题


I can't receive my Firebase Notifications when the app is killed or in background.

I signed the APK, and it doesn't work, and when I send my Data notification with JSON the logcat shows me this error:

   broadcast intent callback: result=CANCELLED forIntent { act=com.google.android.c2dm.intent.RECEIVE pkg=com.example.paolomazza.firebasedemo3 (has extras) }

Given the following Manifest, what could be the cause of this bug? Thanks in Advance

<?xml version="1.0" encoding="utf-8"?>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <receiver android:name="com.example.paolomazza.firebasedemo3.OnBootBroadcastReceiver">
        <intent-filter >
            <action android:name="android.intent.action.BOOT_COMPLETED" />

            <category android:name="android.intent.category.HOME" />
        </intent-filter>
    </receiver>

    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <service android:name=".FirebaseIDService">
        <intent-filter>
            <action android:name="com.example.paolomazza.firebasedemo3.INSTANCE_ID_EVENT"
                android:stopWithTask="false" />
        </intent-filter>
    </service>

    <service android:name=".MyFirebaseMessagingService">
        <intent-filter>
            <action android:name="com.google.firebase.MESSAGING_EVENT"
                android:stopWithTask="false" />
        </intent-filter>
    </service>
</application>

And here's the code for showing the notifications

public void onMessageReceived(RemoteMessage remoteMessage) {
    Map<String, String> data = remoteMessage.getData();

    //you can get your text message here.
    String text= data.get("my_custom_key");

    System.out.println(text);
    notifies(text);
}

private void notifies(String body){
    NotificationCompat.Builder mBuilder =
            new NotificationCompat.Builder(MyFirebaseMessagingService.this)
                    .setSmallIcon(android.R.drawable.ic_menu_help)
                    .setContentTitle("Congratulations!")
                    .setContentText(body);
    Notification mNot= mBuilder.build();
    NotificationManager mNotMan = (NotificationManager)
            getSystemService(Context.NOTIFICATION_SERVICE);
    mNotMan.notify(1,mNot);
}

回答1:


OK, I just solved the problem.

If you're using a Huawei device, or a device that uses a EMOI os, just go to

Advanced settings

than go to

Battery

and

Protected Apps

than select your app, switch it on and you'll be able to receive your notifications in the background!



来源:https://stackoverflow.com/questions/44650985/app-doesnt-show-firebase-notifications-broadcast-intent-callback-result-cance

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!