我在尝试使用设备 ID 作为字符串时得到一个 NPE。
这是我的主要课程:
public class Main extends Application {
public String device_ID(){
final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
return tm.getDeviceId();
}
}
我尝试用来调用 ID 的代码:
String device_id = new Main().device_ID();
尝试改用此方法
public class Main extends Application {
public String device_ID(){
final TelephonyManager tm = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
return tm.getDeviceId();
}
}
像这样使用;
主要
public class Main extends Application {
public static String device_ID(Activity context){
final TelephonyManager tm = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
return tm.getDeviceId();
}
}
现在在项目中的任何位置调用此方法,如下所示:
String device_id = Main.device_ID(MainActivity.this);
创建应用程序的静态实例,然后在任何位置在应用中使用。
public class Main extends Application {
private static Main mInstance;
public static String device_ID(){
final TelephonyManager tm = (TelephonyManager) mInstance.getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
return tm.getDeviceId();
}
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
}
}
你可以从你的应用程序的任何位置像这样调用,
Main.device_ID();