GCM を使用しようとしていますが、異なるデバイスでの GCMRegistrar.getRegistrationId 呼び出しを除いて、すべて正常に動作しています。このコードをエミュレーターと 2 つの異なる電話で実行しましたが、GCMRegistrar.getRegistrationId は常に同じ文字列を返します。デバイスごとに異なると思っていましたが、そうではありません。私は何か間違ったことをしていますか?これが私が使用しているコードです(ドキュメントから取得)。
GCMRegistrar.checkDevice(context);
final String regId = GCMRegistrar.getRegistrationId(context);
if (regId.equals("")) {
GCMRegistrar.register(activity, "123456789012"); //sender id/api project id
} else {
LogUtil.info("Already registered");
}
エミュレータでこれを最初に実行したとき、GCMRegistrar.getRegistrationId は "" を返しましたが、その後の呼び出しでは大きな ID を返します。それは理にかなっている。奇妙なことに、2 台の電話で同じコードを実行すると、両方とも同じ ID (エミュレーターが返したもの) を返し、このアプリを以前に実行したことがありませんでした。