0
アンドロイドデバイスのUUIDを取得したいので、私はTelephonyManager.getDeviceId()メソッドでUUIDを取得しようとしていました。しかし、0(000000000000など)だけで作成されたデバイスIDを返します。なぜTelephonyManager.getDeviceId()はゼロだけで作られたデバイスIDを返しますか?
ここに私のコードです。多くの行のコードを使用してユーザー権限READ_PHONE_STATEを取得しました。
パブリッククラスMainActivityはAppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView tv = (TextView)findViewById(R.id.textview);
if(Build.VERSION.SDK_INT == Build.VERSION_CODES.M){
int permissionResult = checkSelfPermission(Manifest.permission.READ_PHONE_STATE);
if(permissionResult == PackageManager.PERMISSION_DENIED){
if(shouldShowRequestPermissionRationale(Manifest.permission.READ_PHONE_STATE)) {
AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);
dialog.setTitle("Need Permission")
.setMessage("This needs to READ_PHONE_STATE Permission. Continue?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, 1000);
}
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(MainActivity.this, "Canceled", Toast.LENGTH_LONG).show();
}
})
.create()
.show();
}
else{
requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE}, 1000);
}
}
else{
tv.setText(GetDeviceUUID(getBaseContext()));
}
}
tv.setText(GetDeviceUUID(getBaseContext()));
}
public static String GetDeviceUUID(Context mContext){
*/
TelephonyManager mgr = (TelephonyManager)mContext.getSystemService(Context.TELEPHONY_SERVICE);
final String ID = mgr.getDeviceId();
return ID;
}
@Override
public Context getBaseContext() {
return super.getBaseContext();
}
} IMEI番号を持っていないエミュレータとしてエミュレータに0を返す
エミュレータで実行していますか? – Ragini
getDeviceId()GSM用のIMEI、CDMA電話用のMEIDまたはESNなど、固有のデバイスIDを返します。デバイスIDが使用できない場合はnullを返します。 これはgetDeviceID()メソッドの動作ですが、エミュレータでアプリケーションをテストしていることを知りたいですか? –
ありがとうございました。はい、エミュレータでテストしました:) – MagmaTart