无法解析目标意图服务。推送通知Android

时间:2016-06-23 10:40:40

标签: android android-intent notifications google-cloud-messaging

尝试配置推送通知时出现以下错误:

  

无法解析目标意图服务,跳过了类名执行
  传递邮件时出错:未找到ServiceIntent。

清单:

<manifest package="com.packageName"
      xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />  <!-- support previous 4.4 KitKat devices-->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.packageName.permission.C2D_MESSAGE" />
<application
    android:name="AppName"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:theme="@android:style/Theme.Black.NoTitleBar">
    <receiver
        android:name="com.google.android.gms.gcm.GcmReceiver"
        android:exported="true"
        android:permission="com.google.android.c2dm.permission.SEND" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <category android:name="com.packageName" />
        </intent-filter>
        <intent-filter> <!-- support previous 4.4 KitKat devices-->
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />
            <category android:name="com.packageName" />
        </intent-filter>
    </receiver>
    <service
        android:name="com.packageName.activities.RegistrationIntentService"
        android:exported="false" >
    </service>
    <service
        android:name="com.packageName.activities.GcmIDListenerService"
        android:exported="false">
        <intent-filter>
            <action android:name="com.google.android.gms.iid.InstanceID" />
        </intent-filter>
    </service>
    <service
        android:name="com.packageName.activities.MyGcmListenerService"
        android:exported="false" >
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
        </intent-filter>
    </service>
</application>

MyGcmListenerService:

public class MyGcmListenerService extends GcmListenerService {

    @Override
    public void onMessageReceived(String from, Bundle data) {
        String message = data.getString("message");
        Log.d("From", "From: " + from);
        Log.d("Msg", "Message: " + message);

    }

}

RegistrationIntentService

public class RegistrationIntentService extends IntentService {
   private static String SENDER_ID = "MySenderID";

   public RegistrationIntentService(){
       super(SENDER_ID);
   }

   @Override
   public void onHandleIntent(Intent intent){

      SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);

      try {
          InstanceID instanceID = InstanceID.getInstance(this);
          String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
              GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
          Log.i("TOKEN", "GCM Registration Token: " + token);
      } catch (Exception e) {
          Log.d("Fail token", "Failed to complete token refresh", e);
      }

  }


}

GcmIDListenerService

public class GcmIDListenerService extends InstanceIDListenerService {
    @Override
    public void onTokenRefresh() {
        Intent intent = new Intent(this, RegistrationIntentService.class);
        startService(intent);
    }
}

我在projectName / app

中放置了google-services.json

我从网络http://techzog.com/development/gcm-notification-test-tool-android/发送推送通知,响应成功:1但未在Android设备中收到。

0 个答案:

没有答案