我的应用程序在注册过程中崩溃了。我已经尝试了很多可能的修复程序,但是没有希望。我在服务器端使用过php。对它有任何帮助,下面是我添加的代码在它。
1.In the Main Activity
C2DMessaging.register(this,“tesyin123@gmail.com”);
2.在C2DMessaging类
中public static void register(Context context,String senderId) {
Intent registrationIntent = new Intent(REQUEST_REGISTRATION_INTENT);
registrationIntent.setPackage(GSF_PACKAGE);
registrationIntent.putExtra(EXTRA_APPLICATION_PENDING_INTENT,PendingIntent.getBroadcast(context, 0, new Intent(), 0));
registrationIntent.putExtra(EXTRA_SENDER, senderId);
context.startService(registrationIntent);
// TODO: if intent not found, notification on need to have GSF
}
我的清单文件是
<?xml version="1.0" encoding="utf-8"?>
<uses-permission android:name="com.requestec.push.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name="com.notify.AndroidNotification"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service android:name=".C2DMReceiver" android:enabled="true" />
<receiver android:name="com.google.android.c2dm.C2DMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.kk.push" />
</intent-filter>
<!-- Receive registration ids -->
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.kk.push" />
</intent-filter>
</receiver>
</application>
我不知道我错过了什么,我已经尝试了所有可能的方法,或者我在这里遗漏了任何基本的东西。谢谢
答案 0 :(得分:2)
您似乎有权限问题。
假设您的主要活动名为Main.java,并且您有一个类C2DMReceiver(扩展C2DMBaseReceiver,处理onError和onMessage),您的AndroidManifest应该如下所示:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.kk.push" android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<permission
android:name="com.kk.push.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission
android:name="com.kk.push.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.INTERNET" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Main" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".C2DMReceiver"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION"></action>
<category android:name="com.kk.push" />
</intent-filter>
</receiver>
</application>