NPE获取Android的设备ID

时间:2017-08-08 12:54:44

标签: java android nullpointerexception

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

3 个答案:

答案 0 :(得分:0)

像这样使用;

主要

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);

答案 1 :(得分:0)

尝试使用此方法

np.memmap

答案 2 :(得分:0)

创建应用程序的静态实例,然后在任何地方的应用程序中使用。

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();