android - 我没有让应用程序在 C2DM 注册过程中崩溃?

标签 android android-c2dm

我的应用程序在注册过程中崩溃了。我已经为此尝试了许多可能的修复,但没有希望。我在服务器端使用了 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
}    

我的 list 文件是

<?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>

我不确定我在这方面遗漏了什么我已经尝试了所有可能的方法,或者我在这里遗漏了任何基本的东西。谢谢

最佳答案

您似乎遇到了权限问题。

假设您的主 Activity 称为 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>

关于android - 我没有让应用程序在 C2DM 注册过程中崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8061629/

相关文章:

android-c2dm - 需要 C2DM collapse_key 实现解释

android - C2DM 服务的 Google AuthToken 有效性

android - 处理 LazyList 问题

android - 获取在 Android 中使用 C2DM 的主要电子邮件

Android C2DM - 在 http post 中发送什么?

java.lang.NullPointerException : Attempt to invoke virtual method on a null object reference Retrofit

android - "Permission Denial: receiving Intent "的原因

android - 如何使用 list 标签

android - 在 Android 上缓存对象和图像的最佳解决方案?

android - ListView 未在 NestedScrollView 内扩展