我试图在我的类中获取 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/