首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析安装不获取DeviceToken

解析安装不获取DeviceToken
EN

Stack Overflow用户
提问于 2015-07-16 13:58:04
回答 5查看 3.5K关注 0票数 1

我试图在android中使用解析来推送通知,我在Application类中注册了解析,如下所示:

代码语言:javascript
复制
@Override
public void onCreate() {
    super.onCreate();
    Parse.initialize(this, "***************", "***************");
}

我同意在主要活动中推动这样的活动:

代码语言:javascript
复制
@Override
    protected void onCreate(Bundle savedInstanceState) {

    ParsePush.subscribeInBackground("", new SaveCallback() {
        @Override
        public void done(ParseException e) {
            if (e == null) {

                        ParseInstallation.getCurrentInstallation().saveInBackground(new SaveCallback() {
                            @Override
                            public void done(ParseException e) {


                                if (e == null) {
                                    String deviceToken = (String) ParseInstallation.getCurrentInstallation().get("deviceToken");
                                    Log.e("MainActivity", "device toekn " + deviceToken);

                                } else {
                                    Log.e("MainActivity", "failed to subscribe for push " + e.getLocalizedMessage());
                                }
                            }
                        });

            } else {
                Log.e("MainActivity", "failed to subscribe for push", e);
            }
        }
    });



    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

下面是我的清单部分--应用于解析:

代码语言:javascript
复制
  <service android:name="com.parse.PushService" />
    <receiver android:name="com.parse.ParseBroadcastReceiver">
        <intent-filter>
            <action android:name="android.intent.action.BOOT_COMPLETED" />
            <action android:name="android.intent.action.USER_PRESENT" />
        </intent-filter>
    </receiver>
    <receiver android:name="com.parse.ParsePushBroadcastReceiver"
        android:exported="false">
        <intent-filter>
            <action android:name="com.parse.push.intent.RECEIVE" />
            <action android:name="com.parse.push.intent.DELETE" />
            <action android:name="com.parse.push.intent.OPEN" />
        </intent-filter>
    </receiver>
    <receiver android:name="com.parse.GcmBroadcastReceiver"
        android:permission="com.google.android.c2dm.permission.SEND">
        <intent-filter>
            <action android:name="com.google.android.c2dm.intent.RECEIVE" />
            <action android:name="com.google.android.c2dm.intent.REGISTRATION" />

            <!--
              IMPORTANT: Change "com.parse.starter" to match your app's package name.
            -->
            <category android:name="com.****" />
        </intent-filter>
    </receiver>

但是,设备令牌大多数时候返回null,并且设备在解析仪表板中没有设备令牌,因此,我的设备没有得到推送通知。

奇怪的是,有时它确实有效,我得到了deviceToken,安装对象得到了推送,有人遇到过这种行为吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-10-13 11:11:35

这个问题最终得到了解决,这是应用程序名称在标记中的清单标记中的一个简单错误。因为我在这里发布的代码是“com。*”没有人能帮上忙,我很抱歉。

票数 2
EN

Stack Overflow用户

发布于 2016-04-27 20:42:19

我遇到了这个问题,并通过修改我的AndroidManifest文件来解决它。

看起来您可以将解析配置为使用"Parse Push Network“或GCM (Google )

Parse使用自己的push网络,用于那些希望避免依赖Google的应用程序,以及不支持Play Store的设备(如Kindles)。因此,在其他使用GCM时设置下面的内容是很重要的。

代码语言:javascript
复制
<uses-permission android:name="android.permission.INTERNET" />
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 <uses-permission android:name="android.permission.VIBRATE" />
 <uses-permission android:name="android.permission.WAKE_LOCK" />
 <uses-permission android:name="android.permission.GET_ACCOUNTS" />
 <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
 <permission android:name="YOUR_PACKAGE_NAME.permission.C2D_MESSAGE"
   android:protectionLevel="signature" />
 <uses-permission android:name="YOUR_PACKAGE_NAME.permission.C2D_MESSAGE" />

将上面声明中的YOUR_PACKAGE_NAME替换为应用程序的包名。另外,确保com.parse.GcmBroadcastReceiver和com.parse.PushService被声明为元素的子元素:

这对我有用,也许也适用于你。

读这篇文章就能完全理解

票数 2
EN

Stack Overflow用户

发布于 2015-07-23 15:44:57

我想您使用的是1.9.3版本。在1.9.4版中,他们解决了这个问题。检查一下发布说明

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31456351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档