相关疑难解决方法(0)

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万
查看次数

UDID或IMEI-哪个更好?

在开发需要我唯一识别手机用户的应用时.我希望就是否最好使用手机的UDID或IMEI提出一些建议.使用任何一个都有任何优点/缺点.所有评论将不胜感激

windows android imei udid cordova

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

Android - 个人资料中的SharedPreferences

有没有办法访问SharedPreferencesAndroid上的用户配置文件?

例如,如果UserA对应用程序首选项进行了更改,我希望该更改也可供UserB使用.我试图使用写入getFilesFir()路径的文本文件并从其他帐户读取,但是当userA写入文件时,它不可用于userB.我写的文件用MODE_PRIVATE,因为MODE_WORLD_READABLE和MODE_WORLD_WRITABLE已被弃用,但我不知道使用这些将有助于下手.

有没有人知道是否有办法集中我的应用程序设置的首选项,以便它可以在所有用户之间共享?我想避免向SD卡写任何东西.

android user-profile sharedpreferences

7
推荐指数
1
解决办法
1205
查看次数

Android手机的唯一标识符

我正在构建Android应用程序,需要通过一些唯一的数字/字符串来识别设备.

我听说过ANDROID_ID,但也有报道称在一些手机型号甚至更新上都可以是相同的.另一件事是它在出厂重置或系统重新安装后重新创建.我可以忍受,虽然我更喜欢它,如果它保持不变.

有没有其他方法来识别手机而不需要更多权限?IMEI需要它们(android.permission.READ_PHONE_STATE),但它可以吓跑用户.

沙扎姆是怎么做到的?我知道它永久地识别了手机(它记得我在为新用户引入5个标签,每月限制一个用户之前),即使我完全重新安装了系统.

android

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

创建全球唯一的Android标识符

在谈论独特的Android ID时,我确信每个人都看过这个,但是我也试图想出一个解决方案来唯一识别任何Android设备.我很乐意使用公开发布的课程,但我还没找到.

在我的情况下,要求是能够唯一地识别具有某种形式的互联网连接的任何设备(例如GPRS或Wi-Fi)并在API级别8(v2.2 Froyo)上运行.我不知道任何设备没有Wi-Fi或SIM卡,所以如果有的话请告诉我!

我们通过使用Wi-Fi mac地址的哈希在iOS中解决了这个问题,因为所有iOS设备都应该具有此功能.但是对于Android,技术(例如上面引用的SO帖子的答案)指的TelephonyManager是可以返回的类null(例如当设备没有SIM连接时,如Nexus 7)或者getContext().getContentResolver(), Secure.ANDROID_ID根据此处不是在Froyo之前的版本上100%可靠(这对我来说是幸运的).然而,如果有任何问题,它不会再发布任何问题,如果有的话,请告诉我!我也读过这个可以回来的null.根据这里它可以改变工厂重置,但这不是一个主要问题.

所以我把它放在一起生成一个有希望的唯一GUID:[ 这个方法不完整!]

public static String GetDeviceId(Context context)
{
    // Custom String Hash 1
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append("someRandomData"); // Not really needed, but means the stringBuilders value won't ever be null

    // TM Device String
    final TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
    String tmDeviceId = tm.getDeviceId(); // Could well be set to null!
    LogMsg.Tmp("TM Device String …
Run Code Online (Sandbox Code Playgroud)

android guid uniqueidentifier

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

Secure.getString(mContext.getContentResolver(),"bluetooth_address")在Android O中返回null

当我试图通过这种方式在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

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

在 Android 中获取设备 ID 的最佳方法

我只是想知道获取设备 ID 的最佳方式是什么我有 2 个选项,要么使用下面需要运行时权限的代码android.permission.READ_PHONE_STATE-

private String android_id = Secure.getString(getContext().getContentResolver(),
                                                        Secure.ANDROID_ID); 
Run Code Online (Sandbox Code Playgroud)

或者

其次,我可以选择 UUID,它不需要任何运行时权限,但需要与用户数据(如电子邮件或电话)映射来识别。

String uniqueID = UUID.randomUUID().toString();
Run Code Online (Sandbox Code Playgroud)

如果有任何关于使用哪一种以及为什么使用的建议,我们将不胜感激。

谢谢

java android

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

应用于特定的独特设备

有没有办法为特定的独特设备构建应用程序?假设我有一个Android设备,我想只为该设备创建一个apk文件,那个apk不能安装在任何其他设备上,是否可能?

android

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

如何获得Android设备唯一ID?

可能重复:
是否有唯一的Android设备ID?

我使用下面的代码来获取Android设备IMEI,我如何更改下面的代码来获取Android设备唯一ID.

String getDeviceID1(TelephonyManager phonyManager){
    String id = phonyManager.getDeviceId();
    if (id == null){
        id = "not available";
    }
    int phoneType = phonyManager.getPhoneType();
    switch(phoneType){
        case TelephonyManager.PHONE_TYPE_NONE:
            return "" + id;

        case TelephonyManager.PHONE_TYPE_GSM:
            return "" + id;

        case TelephonyManager.PHONE_TYPE_CDMA:
            return "" + id;

        /*
        *  for API Level 11 or above
        *  case TelephonyManager.PHONE_TYPE_SIP:
        *   return "SIP";
        */

        default:
            return "" + id;
    }

    //I used to show IMEI 

    TextView textDeviceID = (TextView)findViewById(R.id.deviceid);
    //retrieve a reference to an instance of TelephonyManager …
Run Code Online (Sandbox Code Playgroud)

android

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

如何唯一识别Android设备?

我正在开发一个允许用户从多个Android设备登录的应用程序(服务器 - 安卓客户端).当用户登录设备时,该设备将在服务器端注册,但我不知道如何避免重复,所以我想知道有没有机会唯一识别Android设备?我认为Google Play和Facebook可以做到这一点.

android

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