我正在尝试以编程方式获取设备序列号。我使用了以下行:
Build.SERIAL
Run Code Online (Sandbox Code Playgroud)
返回如下内容:
95b9efad04ad28
但是,在设备上进行设置时,我看到它显示了不同的字符串:
有人能指出我正确的方向吗?
当我试图通过这种方式在Android O设备上获取Blutooth地址时:
private String getBlutoothAddress(Context mContext){
// Check version API Android
BluetoothAdapter myBluetoothAdapter;
String macAddress;
int currentApiVersion = android.os.Build.VERSION.SDK_INT;
if (currentApiVersion >= android.os.Build.VERSION_CODES.M) {
macAddress = Settings.Secure.getString(mContext.getContentResolver(), "bluetooth_address");
} else {
// Do this for phones running an SDK before lollipop
macAddress = myBluetoothAdapter.getAddress();
}
}
Run Code Online (Sandbox Code Playgroud)
上面的所有代码仍然运行良好我仍然使用该代码Anroid O(8.0)它返回macAddress = null.
java android android-permissions android-bluetooth android-8.0-oreo
我正在处理重复出现的序列号主题,以提供唯一的ID.
我试试这个:
String serial = null;
try {
Class<?> c = Class.forName("android.os.SystemProperties");
Method get = c.getMethod("get", String.class);
serial = (String) get.invoke(c, "ro.serialno");
} catch (Exception ignored) {
}
Run Code Online (Sandbox Code Playgroud)
和
StringBuilder sb = new StringBuilder();
sb.append("SERIAL ").append(android.os.Build.SERIAL).append("\n");
textReportAdmin.setText(
sb.toString());
Run Code Online (Sandbox Code Playgroud)
两者都给出相同的值: C4F12FDD949F22F
在标签的方框和标签上,序列号为: RF2C202WYME
我在选项卡上工作,无法使用
TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String imei = telephonyManager.getDeviceId();
Run Code Online (Sandbox Code Playgroud)
在我的情况下,IMEI是空的.
SERIAL是我所需要的,但我需要它在标签后面的条形码贴纸上显示的清晰版本.
我想这有可能,因为,当进入系统应用程序,并查看设备的状态,它显示清楚...
如何将android.os.Build.SERIAL返回的值转换为人类可见的值?
EDITION:我也查了一下:
sb.append("PRODUCT ").append(android.os.Build.PRODUCT).append("\n");
sb.append("BOARD ").append(android.os.Build.BOARD).append("\n");
sb.append("BOOTLOADER ").append(android.os.Build.BOOTLOADER).append("\n");
sb.append("BRAND ").append(android.os.Build.BRAND).append("\n");
sb.append("CPU_ABI ").append(android.os.Build.CPU_ABI).append("\n");
sb.append("CPU_ABI2 ").append(android.os.Build.CPU_ABI2).append("\n");
sb.append("DEVICE ").append(android.os.Build.DEVICE).append("\n");
sb.append("DISPLAY ").append(android.os.Build.DISPLAY).append("\n");
sb.append("FINGERPRINT ").append(android.os.Build.FINGERPRINT).append("\n");
sb.append("HARDWARE ").append(android.os.Build.HARDWARE).append("\n");
sb.append("HOST ").append(android.os.Build.HOST).append("\n");
sb.append("ID ").append(android.os.Build.ID).append("\n"); …Run Code Online (Sandbox Code Playgroud) 我们使用解析来存储聊天消息,我们正在使用解析通知.
对于iOS,我们这样做是为了在解析的安装表中创建条目..它在解析的安装表中创建条目,我认为必须接收通知.
PFInstallation *currentInstallation = [PFInstallation currentInstallation];
currentInstallation.deviceToken = user.notificationToken;
[currentInstallation saveInBackground];
Run Code Online (Sandbox Code Playgroud)
但在android中我无法在安装表中创建条目.
我没有收到解析通知,我认为这是没有收到通知的原因.
是这样的吗?
任何人都能把我引向正确的道路吗?
UPDATE
现在收到通知但仍有疑虑. 当用户登录时,我正在这样做.如果没有创建用户,我已经设置了条件,否则只创建否则.我没有添加它,因为没有必要
// setting up parse installation
private void setUpParseInstallation()
{
ParseInstallation currentInstallation = ParseInstallation
.getCurrentInstallation();
currentInstallation.saveInBackground(new SaveCallback()
{
@Override
public void done(com.parse.ParseException e)
{
if (e != null)
{
Log.e(TAG, "Error saving parse installation");
}
}
});
}
// add user to parse it it doesn't exist otherwise handle the cases
private void addUserToParseIfNotExisting()
{
// if user doesn't exist create a …Run Code Online (Sandbox Code Playgroud) notifications android push-notification android-notifications parse-platform
我是 Android 新手。我正在开发一个简单的应用程序,我需要从服务器端发送推送通知。
因此,需要在应用安装时使用 call api 发送数据。为此,我必须获取设备信息,例如设备名称、版本、唯一密钥(令牌)等。
我试过但不明白怎么办?任何人有想法请与我分享。