使用ANDROID_ID唯一标识Android设备

使用Settings.Secure#ANDROID_ID 会返回每个用户唯一的64位hex字符串,它是在设备首次boot时生成。我们可以使用它来唯一标识Android设备。

import android.provider.Settings.Secure;

private String android_id = Secure.getString(getContext().getContentResolver(),
                                                        Secure.ANDROID_ID); 

需要注意:

  • 这是唯一标识每一个Android的系统安装,而不是Android设备自身的物理id。
  • Android ID在 Android prior to 2.2 (“Froyo”)不可靠,会生成重复的android id。

还有其他一些唯一识别Android设备的方法,相对其他方法,使用ANDROID_ID是比较可靠的。

其他方法参考:Identifying App Installations

版权声明:著作权归作者所有。

相关推荐

Android使用DiffUtil智能地更新RecyclerView

DiffUtil是一个工具类,它会找出两个列表的差异,输出一个更新列表,并且可以用来通知RecyclerView的Adapter更新。使用DiffUtil会使用DiffUtil.Callback来计算两个列表的差异,其中DiffUtil.Callback是一个抽象类,需要我们实现它,它包含了四个抽象方法和一个非抽象方法:getOldListSize():获取旧列表的大小getNewListSize

使用Robolectric写Android单元测试

Robolectric是一个单元测试框架,运行在jvm上。相对于在Android模拟器或设备上运行测试需要花费一分甚至更长时间,Robolectric只需要几秒钟。这里简单介绍下使用Robolectric做单元测试。添加依赖首先在build.gradle添加Robolectric依赖,并设置android的测试选项unitTests.includeAndroidResources为truetest

Android使用Fresco加载图片的用法

在Android的App开发中,延时加载图片是硬需求。有好几个开源的项目也提供了延时加载图片的功能,常用的有:Fresco,Glide和Universal Image Loader。这里主要简单介绍下Fresco。添加依赖在build.gradle添加依赖如下:dependencies {   ...    compi

使用sdkmanager命令行工具安装Android SDK

在使用持续集成工具(如jenkins,travis ci)对android做自动部署时,我们不能像在Android Studio那样使用SDK Manager的GUI界面来安装Android SDK。这种情况下,我们需要使用android命令行工具或者sdkmanager命令行工具来管理Android SDK。这里介绍一下sdkmanager命令行

Android:解决android.os.NetworkOnMainThreadException问题

原因当应用在主线程执行网络操作时会抛出此异常android.os.NetworkOnMainThreadException。解决方法把执行网络的操作的代码放到AsyncTask里可以避免此问题。示例:class MyConnectTas extends AsyncTask {     @Override  &