Mad*_*dhu 6 android android-emulator apk
希望您知道安装在Android设备中的应用程序可以在Astro文件管理器等应用程序的帮助下备份并存储为可安装文件(作为APK文件).同样的apk也可以安装在android模拟器中.因此,其他人可能很容易深入挖掘已安装的应用程序的文件,如数据库,共享首选项等.
有没有办法允许只在真实设备中安装,而不是在模拟器中?
我知道如果它是ROOTED设备,我们可以像在模拟器中一样访问应用程序的数据.即使我想知道我们是否可以限制在模拟器中安装apk.
提前致谢
使用这个功能:
public static boolean isEmulator() {
return Build.FINGERPRINT.startsWith("generic")
|| Build.FINGERPRINT.startsWith("unknown")
|| Build.MODEL.contains("google_sdk")
|| Build.MODEL.contains("Emulator")
|| Build.MODEL.contains("Android SDK built for x86")
|| Build.MANUFACTURER.contains("Genymotion")
|| (Build.BRAND.startsWith("generic") && Build.DEVICE.startsWith("generic"))
|| "google_sdk".equals(Build.PRODUCT);
}
Run Code Online (Sandbox Code Playgroud)
因此:
if (isEmulator()) {
// emulator
} else {
//not emulator
}
Run Code Online (Sandbox Code Playgroud)
我的建议:
从 github试试这个。
易于检测的android模拟器
- 在 Device Farm ( https://aws.amazon.com/device-farm/ ) 中检查真实设备
- 蓝叠
- 基因运动
- 安卓模拟器
- 安迪 46.2.207.0
- MEmu玩
- Nox 应用播放器
- 高手
- .....
如何使用示例:
EmulatorDetector.with(this)
.setCheckTelephony(true)
.addPackageName("com.bluestacks")
.setDebug(true)
.detect(new EmulatorDetector.OnEmulatorDetectorListener() {
@Override
public void onResult(boolean isEmulator) {
}
});
Run Code Online (Sandbox Code Playgroud)
没有通用的方法可以做到这一点。毕竟,模拟器的工作是尽可能地像真实设备一样运行,包括模拟来自相机、GPS 传感器等的输入。
如果您将清单设置为依赖于模拟器通常不支持的某些硬件,您可能会有所收获。例如:
<uses-feature android:name="android.hardware.sensor.accelerometer"
android:required="true" />
Run Code Online (Sandbox Code Playgroud)
但实际上,如果您想防止人们查看您应用程序存储的数据,最好的解决方案是对其进行加密或混淆。
| 归档时间: |
|
| 查看次数: |
2516 次 |
| 最近记录: |