1

我的应用程序在 Knox 内接收来自 GCM 的消息时遇到了一个大问题。Knox 之外的同一个应用程序可以毫无问题地接收消息。相同的应用程序在外部和内部都注册到 GCM。为什么 GCM 在 Knox 中不起作用?在 Knox 中接收 GCM 消息需要做什么?

Device: Samsung S5
Samsung Knox version: 2.3
Google Play Services: 8.4.89
4

1 回答 1

1

好的,我自己找到了解决方案。问题在于注册到 GCM 服务。

我使用 GCM 指南(https://developers.google.com/cloud-messaging/android/start)中的注册代码:

public class RegistrationIntentService extends IntentService {
    @Override
    public void onHandleIntent(Intent intent) {
        // ...

        InstanceID instanceID = InstanceID.getInstance(this);
        String token = instanceID.getToken(getString(R.string.gcm_defaultSenderId),
            GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);

        // ...
    }
}

实际上它工作得很好。在 Android 和 Knox 中,令牌按预期接收。但是在 Knox 上没有来自 GCM 的任何消息。在查看了各种应用程序后,我使用了不同的代码进行注册:

public class RegistrationIntentService extends IntentService {
    @Override
    public void onHandleIntent(Intent intent) {
        // ...

        GoogleCloudMessaging gcm = GoogleCloudMessaging.getInstance(this);
        String token = gcm.register(getString(R.string.gcm_defaultSenderId));

        // ...
    }
}

......神奇的是就是这样。希望它对某人有用。


于 2016-01-26T14:15:36.563 回答