Android 判断真机和模拟器的方法

 Android 判断真机和模拟器的方法

最近有一些业务需求要判断是否在真机上运行还是在模拟器上运行两种不同的情况下做不同的业务逻辑操作。上网查了查还真有不少的资源。

接下来给大家展示下实例代码:

private static String getSystemProperty(String name) throws Exception {
  Class systemPropertyClazz = Class.forName("android.os.SystemProperties");
  return (String) systemPropertyClazz.getMethod("get", new Class[]{String.class})
      .invoke(systemPropertyClazz, new Object[]{name});
}

public static boolean checkEmulator() {
  try {
    boolean goldfish = getSystemProperty("ro.hardware").contains("goldfish");
    boolean emu = getSystemProperty("ro.kernel.qemu").length() > 0;
    boolean sdk = getSystemProperty("ro.product.model").equals("sdk");
    if (emu || goldfish || sdk) {
      return true;
    }
  } catch (Exception e) {
  }
  return false;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • Android 区别真机和模拟器的几种方法

    现在的模拟器的功能太强大,从蓝牙,传感器等配件到IMEI,Mac,以及手机硬件信息什么都可以模拟 为了防止用户利用模拟器模仿真机进行刷单,刷流量等恶意操作. 需要获取设备返回的一些信息来鉴别设备的真伪. 下面是整理的模拟器和真机的区别 虽然大部分都可以模仿,伪造,但是如果综合所有维度来监控,应该不存在太大问题. 一,native方式. 通过c代码读取设备中的配置和硬件相关信息. 1,diskstats 获取闪存的分区状态信息. int fd = open("/proc/diskstats&quo

  • Android开发必备:秒杀真机超快模拟器Genymotion介绍

    第一,这货速度太快,第二,模仿真机环境,第三,秒杀任何Android模拟器包括真机,不多说上图,我忒忙! 官网: http://www.genymotion.com/ 镜像图片可以创建多个模拟器 关键是有一切Google的服务,在Google眼里就是一个真机 骚年不知道外界的Android,已经发生了翻天覆地的变化!

  • Android 判断真机和模拟器的方法

     Android 判断真机和模拟器的方法 最近有一些业务需求要判断是否在真机上运行还是在模拟器上运行两种不同的情况下做不同的业务逻辑操作.上网查了查还真有不少的资源. 接下来给大家展示下实例代码: private static String getSystemProperty(String name) throws Exception { Class systemPropertyClazz = Class.forName("android.os.SystemProperties");

  • Android Studio真机无线连接USB设备调试运行详解流程

    前言 一般情况下,多数移动开发者使用的是数据线连接电脑,进行各种移动设备的调试,更有胜者,非常迷恋模拟器,模拟器它好不好,答案是好,因为直接运行在电脑上,直接操作,调试,确实方便.尤其是ios开发小伙伴,多数app通过模拟器基本上都能开发好,再用真机验证就可以了.但对于android,就比较恼火了,模拟器一直不好用,卡.慢都是影响撸码的心情.另外android设备随便弄个便宜的都是容易的,基本上是真机开发.那么非一般情况呢,例如我们使用了NDK也就是C层的代码时,由于架构匹配方面,需要用真机开发

  • android判断软件是否第一次运行的方法

    本文实例讲述了android判断软件是否第一次运行的方法.分享给大家供大家参考.具体如下: SharedPreferences sharedPreferences = this.getSharedPreferences("share", MODE_PRIVATE); boolean isFirstRun = sharedPreferences.getBoolean("isFirstRun", true); Editor editor = sharedPreferen

  • android判断相机图片朝向的简单方法

    android应用里使用相机图片时必须要考虑的一个问题就是图片朝向,只有判断对朝向才能调整图片从而更好的展现.本文将介绍一种通过ExifInterface判断图片朝向的方法! 上代码: /** * * 利用给定路径下的图片设置ImageView * * @param imgPath 手机图片文件路径 * @param imgView 需要设置的ImageView */ public void setImg(String imgPath, ImageView imgView) { File fil

  • Android判断某个权限是否开启的方法

    如下所示: /** * 读写权限 自己可以添加需要判断的权限 */ public static String[]permissionsREAD={ Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE }; /** * 判断权限集合 * permissions 权限数组 * return true-表示没有改权限 false-表示权限已开启 */ public static bo

  • Android判断定位功能是否可用的方法

    定位功能是否可用由定位服务和定位权限共同决定: 判断定位服务: /** * 手机是否开启位置服务,如果没有开启那么所有app将不能使用定位功能 */ public static boolean isLocServiceEnable(Context context) { LocationManager locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); boolean gps

  • 快速解决低版本Xcode不支持高版本iOS真机调试的问题方法

    今天在进行真机调试的时候,遇到了以下问题. Could not locate device support files. This iPhone 6s is running iOS 10.2(14C92), which may not be supported by this version of Xcode. 见文知意,主要原因是在调试前我将iOS 升级到了最新版10.2版本,而我的Xcode8.1支持的最高版本是10.1的. 其实每次iOS SDK版本升级都会遇到相同的问题,之前遇到过相同的

  • Android获取本机电话号码的简单方法

    如何在Android上获取本机电话号码,目前Android上提供了一个API可以读取早期SIM卡上固化的号码, 复制代码 代码如下: private String getPhoneNumber(){       TelephonyManager mTelephonyMgr;       mTelephonyMgr = (TelephonyManager)  getSystemService(Context.TELEPHONY_SERVICE);        return mTelephonyM

  • Android判断是否为飞行模式简单方法

    判断是否为飞行模式: 复制代码 代码如下: boolean isAirplaneMode = Settings.System.getInt(mContext.getContentResolver(),                 Settings.System.AIRPLANE_MODE_ON, 0) ; 这里的mContext是android.content.Context

随机推荐