Question

I expect that my android application is allowed to install only on real device, and android-emulator can't.How can I limit my android application installed on real device only ? Thanks for any replies.

Was it helpful?

Solution

There's one way how to handle it. Just check device id (IMEI code). For emulator it's always null, so you can define either someone tries to launch it in real device or in emulator.

    TelephonyManager tm=(TelephonyManager )activity.getSystemService(Context.TELEPHONY_SERVICE);
    if(tm==null || !this.hasTelephony())
    {
        Log.v(TAG, "Can't get telephony service. Forcing shut down!");
        return false;
    }
    String deviceId=tm.getDeviceId();
    if(deviceId==null || deviceId.length() < 2)
    {
        Log.v(TAG, "Looks like emulator - bail out!");
        Toast.makeText(activity, "This special version not intended to run in this device!", 5000).show();
        return false;
    }

OTHER TIPS

Unfortunately you cannot stop people from installing in emulator, but if you have Google Licensing installed it will make sure that it does not run on unlicensed devices.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top