我有一个Android应用程序,用户可以在其中连接和断开与服务器的连接。我不希望在应用程序中进行任何类型的注册,但我希望服务器识别已连接到服务器的用户。一种方法是使用Google Play服务和Instance id API,每次客户端连接时,都会将gcm生成的ID发送到服务器。使用Google Play服务API我也可以轻松实现推送通知。但是,我觉得我不需要它们,我也必须在以后实现ios和Web客户端。 Afaik没有适用于网络的Google Play服务API,因此提出了一个问题:可能还有哪些替代方案?
答案 0 :(得分:1)
我理解这个问题的方法是,你想要一个uniqueId,它对每个设备都是唯一的,你不需要我们从GCM获得的注册ID。 因此,您拥有的设备ID对于每个设备都是唯一的,并且有一种获取设备ID的方法
public String uniqueId() {
final TelephonyManager tm = (TelephonyManager) mContext
.getSystemService(Context.TELEPHONY_SERVICE);
final String tmDevice, tmSerial, androidId;
tmDevice = "" + tm.getDeviceId();
tmSerial = "" + tm.getSimSerialNumber();
androidId = ""
+ android.provider.Settings.Secure.getString(
mContext.getContentResolver(),
android.provider.Settings.Secure.ANDROID_ID);
UUID deviceUuid = new UUID(androidId.hashCode(),
((long) tmDevice.hashCode() << 32) | tmSerial.hashCode());
String deviceId = deviceUuid.toString();
return deviceId;
}