0

I just wrote below code, and running on an android emulator:

        TelephonyManager mgr = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
        String t = "";
        try {
            t = mgr.getSimSerialNumber();
        } catch (Exception e) {
            e.printStackTrace();
        }

I've got following exception:

java.lang.SecurityException: getIccSerialNumber: Neither user 10057 nor current process has android.permission.READ_PHONE_STATE.

Permissions were added in app's AndroidManifest.xml:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />

The code can be executed on a real device without error. I'm wondering is it possible to get a fake sim card info (better be configurable) on an android emulator instead of throwing security exception?

Jim Ma
  • 709
  • 5
  • 15
  • 2
    https://stackoverflow.com/questions/32635704/android-permission-doesnt-work-even-if-i-have-declared-it -- what versions of Android are you using (device and emulator), and what is your `targetSdkVersion`? – CommonsWare Dec 26 '16 at 15:38
  • @Jim Ma you are trying to get access the sim card details from emulator which is not present in emulator. So this code will not work on emulator because sim card details are always registered and verified. – Saurabh Bhandari Dec 26 '16 at 16:42

0 Answers0