我正在尝试在我的班级中获取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);
}
}
答案 0 :(得分:3)
您需要使用正确的上下文,如下所示:
Secure.getString(getApplicationContext().getContentResolver(), Secure.ANDROID_ID);
但是,在使用ANDROID_ID之前,你可能想稍微谷歌一点,因为它有问题,而且并不总是唯一,一致或甚至定义。
要访问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);
}
....
}
然后,当您在活动中实例化您的课程时,请执行以下操作:
MyClass idClass = new MyClass( this );
另一个注意事项 - 类名称应以大写字母开头。