1
mPhoneNumber 변수가 null로 되돌아옵니다. 나는이 일을 일주일 동안 디버깅 해왔고, 나는 극도로 붙어있다. 왜 getLine1Number
은 null을 반환합니까?TelephonyManager.getLine1Number()가 null을 반환합니다.
try
{
TelephonyManager tMgr = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
if (tMgr != null)
{
if (checkSelfPermission(android.Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED)
{
if (checkSelfPermission(android.Manifest.permission.READ_PHONE_STATE) == PackageManager.PERMISSION_GRANTED)
{
// TODO: Consider calling
// Activity#requestPermissions
// here to request the missing permissions, and then overriding
// public void onRequestPermissionsResult(int requestCode, String[] permissions,
// int[] grantResults)
// to handle the case where the user grants the permission. See the documentation
// for Activity#requestPermissions for more details.
return;
}
}
String mPhoneNumber = tMgr.getLine1Number();
// Log.v("PHONE: ", mPhoneNumber);
}
else
{
//Log.v("PHONE NO: ", "NO");
}
}
catch(Exception e)
{
// TODO: Handle exception
}
을 확인하시기 바랍니다. 그렇다면 당신은 돌아옵니다. 그렇지 않으면 전화 번호를 읽으려고합니다. String mPhoneNumber = tMgr.getLine1Number(); 라인은 안드로이드를 확인하는 대괄호 안에 있어야합니다 .Manifest.permission.READ_PHONE_STATE. 또는 ==를! = –
으로 변경해야합니다.이 문제 이외에도 [때때로 null을 반환하는 것으로 문서화되어 있습니다] (https://developer.android.com/reference/android/telephony/TelephonyManager) .html # getLine1Number()). – CommonsWare
여기서'mPhoneNumber'는'null'이고 어떤 다른 변수는 같은 이름으로 쓰이지 않았습니까? 당신은 NPE를 가지고 있다고 말했지만,이 코드는 NPE를 던지지 않을 것입니다. (이 부분을 삭제했습니다. 그렇지 않으면 아마도 중복으로 닫힐 것입니다.) – NickL