Android studio获取IMEI码 真机调试闪退

目标是获取IMEI码,已经加入READ_PHONE_STATE的权限
以下代码在MainActivity中,手机真机运行时,按下按钮直接闪退了

```package com.example.imei_get;

import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.view.View;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {
private static Context context; //全局的上下文
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = getApplicationContext();
}
public void get_imei(View v){
TextView txv= (TextView) findViewById(R.id.textview);//
TelephonyManager TelephonyMgr = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
String szImei = TelephonyMgr.getDeviceId();
txv.setText(szImei);
}
}

如果你的targetSDKVersion是在23及以上,危险权限需要运行时授权。另外给你个建议,为了程序的强壮性,在需要危险权限的代码,添加try-catch,防止程序闪退。

安卓q上不支持获取deviceid。 获取deviceid需要权限。