アプリで Knox 内の GCM からメッセージを受信する際に大きな問題があります。Knox 外の同じアプリは問題なくメッセージを受信します。同じアプリが GCM の外部と内部に登録されます。Knox 内で GCM が機能しないのはなぜですか? Knox 内で GCM メッセージを受信するには、何をする必要がありますか?
Device: Samsung S5
Samsung Knox version: 2.3
Google Play Services: 8.4.89
アプリで Knox 内の GCM からメッセージを受信する際に大きな問題があります。Knox 外の同じアプリは問題なくメッセージを受信します。同じアプリが GCM の外部と内部に登録されます。Knox 内で GCM が機能しないのはなぜですか? Knox 内で GCM メッセージを受信するには、何をする必要がありますか?
Device: Samsung S5
Samsung Knox version: 2.3
Google Play Services: 8.4.89
OK、私は自分で解決策を見つけました。問題は、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));
// ...
}
}
...そして魔法のようにそれでした。誰かに役立つことを願っています。