java - Android getContentResolver() 未定义用于获取 AndroidID

标签 java android

我试图在我的类中获取 Android 的设备 ID,并且函数将使用它。当我尝试像下面一样使用时,它显示“方法 getContentResolver() 未定义” 如何解决它你有什么想法吗?

更新:

public class DatabaseHandler extends SQLiteOpenHelper {
    // db version
    private static final int DATABASE_VERSION = 1;
    // db name
    private static final String DATABASE_NAME = Secure.getString(getContentResolver(), Secure.ANDROID_ID);


    // constructor
    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

}

最佳答案

您需要使用正确的上下文,如下所示:

Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);

但是,在使用 ANDROID_ID 之前,您可能需要在 google 上搜索一下它,因为它是有问题的,而且并不总是唯一、一致甚至定义的。

为了访问getApplicationContext(),您需要一个Context。修复你的类声明:

public class MyClass {
    private Context ctx;

    public MyClass( Context ctx ) {
        super();
        this.ctx = ctx;
    }

    public String getID() {
        return Secure.getString( this.ctx.getContentResolver(), Secure.ANDROID_ID);
    }

    ....
}

然后,当您在 Activity 中实例化您的类时,请执行以下操作:

MyClass idClass = new MyClass( this );

另一个注意事项——类名应该以大写字符开头。

关于java - Android getContentResolver() 未定义用于获取 AndroidID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13555157/

相关文章:

java - 阅读并理解 Android 上的 AMR 文件的内容

java - 如何在java中进行preg_replace

java - 这个 JAX-WS 客户端调用线程安全吗?

java - java中接收double的绝对值最快的方法是什么?

java - Android - 关于为两个独立动画更有效地编写我的递归方法的建议

java - 单链表还原中的错误

android - 突出显示WebView android 4.0中的特定文本

Android:无法在默认图片文件夹中创建目录

android - android 中的后台服务未运行某些设备,如 oppo、vivo 等

android - 对话框在旋转时消失