NPE 同时获取安卓设备 ID



我在尝试使用设备 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();

最新更新