public class MainActivity extends AppCompatActivity {    private static final String PERMISSION_READ_PHONE_STATE = "android.permission.READ_PHONE_STATE";    private static final String LINE_SEPARATOR = System.getProperty("line.separator");    private TextView textView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        textView = findViewById(R.id.textview);        StringBuilder sb = new StringBuilder();        sb.append("TelephonyId");        sb.append(LINE_SEPARATOR);        sb.append(getTelephonyId());        sb.append(LINE_SEPARATOR);        sb.append("MacAddress");        sb.append(LINE_SEPARATOR);        sb.append(getMacAddress());        sb.append(LINE_SEPARATOR);        sb.append("AndroidId");        sb.append(LINE_SEPARATOR);        sb.append(getAndroidId());        textView.setText(sb.toString());    }    private void randomTitle() {        UUID uuid = UUID.randomUUID();        getActionBar().setTitle(uuid.toString());    }    /**     * 单卡工程中一个手机号对应一个IMEI号,双卡手机则会对应两个IMEI号     */    private String getTelephonyId() {        TelephonyManager telephonyMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);        if (PackageManager.PERMISSION_GRANTED == checkSelfPermission(PERMISSION_READ_PHONE_STATE)) {            String imei = telephonyMgr.getImei();            String simSerialNumber = telephonyMgr.getSimSerialNumber();            return imei + LINE_SEPARATOR + simSerialNumber;        }        return null;    }    /**     * Mac 指的就是我们设备网卡的唯一设别码,该码全球唯一,一般称为物理地址,硬件地址用来定义设备的位置     */    private String getMacAddress() {        String macAddress = null;        StringBuilder buf = new StringBuilder();        NetworkInterface networkInterface = null;        try {            networkInterface = NetworkInterface.getByName("eth1");            if (networkInterface == null) {                networkInterface = NetworkInterface.getByName("wlan0");            }            if (networkInterface == null) {                return "02:00:00:00:00:00";            }            byte[] addr = networkInterface.getHardwareAddress();            for (byte b : addr) {                buf.append(String.format("%02X:", b));            }            if (buf.length() > 0) {                buf.deleteCharAt(buf.length() - 1);            }            macAddress = buf.toString();        } catch (SocketException e) {            e.printStackTrace();            return "02:00:00:00:00:00";        }        return macAddress;    }    /**     * 在设备首次运行的时候,系统会随机生成一64位的数字,并把这个数值以16进制保存下来,这个16进制的数字就是ANDROID_ID,但是如果手机恢复出厂设置这个值会发生改变。     */    private String getAndroidId() {        return Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);    }}

当前测试手机:360N7 lite, Android 8.0
应用分屏通过在 application 和 activiy 同时设置 android:resizeableActivity=“true” 来实现
这说明可以通过 Imei 和 simSerialNumber 来实现判断是否双开,所以不要包有侥幸心里。

更多相关文章

  1. Android(安卓)Studio 在小米手机上成功运行
  2. android seekbar的用法
  3. 获取android 手机的mac
  4. Android获取手机内存
  5. 获取android 手机的mac
  6. android 设备调试Installation failed with message INSTALL_CAN
  7. android历史版本对应的api等级
  8. 「Android」使用SAF打开指定目录
  9. Android(安卓)获取当前设备的IP地址

随机推荐

  1. Android(安卓)实现定时任务之一 - 使用Ha
  2. java android 访问DELPHI 的DATASNAP
  3. Android(安卓)NDK 调试
  4. 用 SDK Manager.exe 无法更新 Android(安
  5. android camera HAL v3.0详细介绍(二)
  6. 屏幕元素的层次
  7. Android(安卓)error: "Apostrophe not pr
  8. 基于Android的SDIO-WIFI移植(1)
  9. Android(安卓)studio搭建开发环境
  10. Android中文按拼音排序