相关疑难解决方法(0)

是否有唯一的Android设备ID?

Android设备是否具有唯一ID,如果是这样,使用Java访问它的简单方法是什么?

android uniqueidentifier

2645
推荐指数
35
解决办法
94万
查看次数

创建在固定时间段后过期的Android试用版应用程序

我有一个应用程序,我想作为付费应用程序进入市场.我想有其他版本的"试用"版本,时间限制为5天?

我该怎么做呢?

android trialware android-1.5-cupcake

103
推荐指数
6
解决办法
6万
查看次数

Android唯一序列号

我正在开发一个针对Android 4.0(API 14)及更高版本的Android应用程序.

我正在寻找一个每个设备唯一的序列号,并且这个序列号永远存在(与设备一起死亡,在出厂重置后不会改变).

我在网上发现了很多关于Android设备的唯一标识符的结果,但在android.os.Build.SERIAL数字上却很少.

到目前为止,我已经消除了ANDROID_ID的使用,因为它可能会在出厂重置后发生变化.我也消除了IMEI的使用,因为Android设备可能是非手机的.我无法使用wifi或蓝牙MAC ADDRESS,因为如果未启用硬件(基于我在网络上找到的内容),设备可能没有这样的硬件和/或这样的mac地址可能无法读取.

我相信我可能会去Android设备序列号.

可以使用android.os.Build.SERIAL轻松访问它(因为它是在API级别9中添加的,不需要任何其他权限).

我的问题是:

  • 考虑到我的应用程序针对Android 4.0(API 14)及更高版本,是每个设备唯一的android设备的android.os.Build.SERIAL号码吗?

  • 目前,android.os.Build.SERIAL的文档指示:硬件序列号(如果可用).仅限字母数字,不区分大小写. 这是否意味着序列号可能不可用?

  • 什么是满足上述条件的另一种替代方案?

android serial-number uniqueidentifier

52
推荐指数
3
解决办法
5万
查看次数

Android - 你如何应对9774d56d682e549c?Android ID

所以,我认为我很聪明,并使用Android的安全唯一ID的各种哈希和排列来识别我的用户....

但事实证明,9774d56d682e549c是一个神奇的ID返回

Secure.getString(getContentResolver(), Secure.ANDROID_ID);
Run Code Online (Sandbox Code Playgroud)

对于大量的设备......似乎我构建的每个模拟器都具有相同的ID,并且许多其他人的手机(许多moto机器人!)和闪存的OS mods倾向于返回相同的重复值.非MotoDroid/Non-Flashed手机似乎都给了我一个独特的字符串.但是这个在我的DB中大约有60次!

我将优化我的应用程序以在注册之前检查该字符串,但是建议的方法是处理它以获得另一个唯一值?

我目前的想法是检查它,生成一个非常大的随机值,哈希它,然后存储比SharedPreferences然后使用ANDROID_ID或存储在sharedprefs中的那个(如果用户手机给出了值).任何人都有更好的想法,或者这似乎足以缓解这个疯狂的错误?

security android cryptography

16
推荐指数
1
解决办法
1万
查看次数

Android设备ID长度应该是多少

任何人都可以告诉我Android中设备UDID的长度,因为我在Android中获得了UDID,它只有16个字符,但iPhone UDID长度为40.

我使用以下代码来检测ID:

id = android.provider.Settings.System.getString(super.getContentResolver(),
    android.provider.Settings.Secure.ANDROID_ID);
Run Code Online (Sandbox Code Playgroud)

android udid

7
推荐指数
2
解决办法
2万
查看次数

如何在Android Oreo上获取应用特定的ANDROID_ID?

如上所述, Oreo为每个应用程序提供了唯一的ANDROID_ID,这使得上一个命令无法按照我的意愿获取id.

adb shell settings get secure android_id
Run Code Online (Sandbox Code Playgroud)

我怎么能在Oreo上获得特定应用所看到的android id?

欢迎Root和非root解决方案.

android android-8.0-oreo

6
推荐指数
1
解决办法
663
查看次数

一个用户到多台设备的 Firebase 通知 - Android 问题

我有一个 Web 应用程序,它为每个用户保留一个用户 ID 和 Firebase 通知令牌。用户和令牌在 Android 设备上创建并发送到服务器,因此服务器知道将通知发送到哪里(因为令牌)。

这里的问题是,一个用户可以登录多个设备。如果用户在两个设备上,那么我应该向两个设备发送通知。Web 应用程序知道一个用户 ID 的 2 个令牌。那没问题。

但是如果我在同一台设备上卸载并安装该应用程序呢?我为用户获得了一个新令牌,因此我将其保存到 Web 应用程序中,但随后我为一个用户 ID 获得了 3 个令牌。这是不正确的,因为我应该只有 2 个令牌(一个令牌是旧的)。

我知道我也可以保存设备 ID (UUID),所以我知道那台设备上的令牌已更改,因此我可以删除设备的旧令牌。但是对于 Android SDK 23 及更高版本,我需要请求特殊权限才能读取 UUID。但我不想打扰用户要求访问 UUID 的权限。

所以我这里有问题。我只想为我的 Web 应用程序上的一个用户 ID 保留 VALID 令牌(如果用户有 2 部手机,那么我应该只为用户保留 2 个令牌),但如果没有用户接受许可,我不知道如何。

请在这里帮助我,我真的找不到标准解决方案和答案:(我想有一些标准解决方案。

谢谢!

android android-notifications firebase

6
推荐指数
1
解决办法
1511
查看次数

Android Q 中的唯一标识符

Android Q 限制对 IMEI 和序列号的访问。它仅适用于具有特殊运营商许可的平台和应用程序。此外,权限 READ_PRIVILEGED_PHONE_STATE 不适用于非平台应用程序。

现有版本(Android P、Android O、Android M)我们使用序列号来唯一标识设备。现在,我们在尝试访问设备标识符时遇到了以下异常。

Android Q 限制对 IMEI 和序列号的访问。

android.os.Build 类中的 getSerial()

06-21 12:37:07.460  1250  2555 W DevicePolicyManager: Package com.nagra.nmp.corepaktest (uid=10201, pid=32694) cannot access Device IDs
06-21 12:37:07.460  1250  2555 W TelephonyPermissions: reportAccessDeniedToReadIdentifiers:com.nagra.nmp.corepaktest:getSerial:isPreinstalled=false:isPrivApp=false
06-21 12:37:07.464 32694 32718 W System.err: java.lang.SecurityException: getSerial: The user 10201 does not meet the requirements to access device identifiers.
06-21 12:37:07.464 32694 32718 W System.err:    at android.os.Parcel.createException(Parcel.java:2069)
06-21 12:37:07.464 32694 32718 W System.err:    at android.os.Parcel.readException(Parcel.java:2037)
06-21 12:37:07.465 32694 32718 …
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
1
解决办法
8844
查看次数

Settings.Secure.ANDROID_ID不是唯一的,如何解决?

我现在面临一个大问题.在Android官方参考中找到:http: //developer.android.com/reference/android/provider/Settings.Secure.html#ANDROID_ID


public static final String ANDROID_ID

*在API级别3中添加

在设备首次启动时随机生成的64位数字(作为十六进制字符串),应在设备的生命周期内保持不变.(如果在设备上执行恢复出厂设置,则该值可能会更改.)常量值:"android_id"*


但是有超过500个平板电脑出售(A10 AllWinner)ANDROID_ID并非真正随机生成,我看到(从我的网络服务日志中)有几个设备具有相同的数字!

为什么?

我该如何解决这个问题?如何生成唯一ID?假设所有设备的串行代码始终相同(多个Android设备上的序列号相同.Adb无用.如何更改序列号?)并且MAC地址无法始终可用.

security android

3
推荐指数
1
解决办法
7883
查看次数

IMSI号码是否对每部手机都是唯一的

每部手机的IMSI号码都是唯一的吗?

我想知道关于Android的答案.

请帮忙.

android

1
推荐指数
2
解决办法
4434
查看次数