Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Whisper应用程序无法在各种Android模拟器中运行_Android_Android Emulator_Emulation_Bluestacks - Fatal编程技术网

Whisper应用程序无法在各种Android模拟器中运行

Whisper应用程序无法在各种Android模拟器中运行,android,android-emulator,emulation,bluestacks,Android,Android Emulator,Emulation,Bluestacks,我曾尝试让这个应用程序在各种android模拟器中工作,从android AVD到Bluestacks到Memu以及其他各种android模拟器,但都没有成功 然而,由于某些奇怪的原因,虽然应用程序可以通过这些模拟器成功安装和打开,但某些特性/功能将无法按预期工作 特别是发帖子、回复帖子或与其他用户进行对话/聊天都不会成功。这会让用户相信消息/帖子/回复已经发送/发布,正如您在自己的网站上看到的那样。但当使用同样运行Whisper的实际(即物理)智能手机设备(无论是Android还是iOS)进行

我曾尝试让这个应用程序在各种android模拟器中工作,从android AVD到Bluestacks到Memu以及其他各种android模拟器,但都没有成功

然而,由于某些奇怪的原因,虽然应用程序可以通过这些模拟器成功安装和打开,但某些特性/功能将无法按预期工作

特别是发帖子、回复帖子或与其他用户进行对话/聊天都不会成功。这会让用户相信消息/帖子/回复已经发送/发布,正如您在自己的网站上看到的那样。但当使用同样运行Whisper的实际(即物理)智能手机设备(无论是Android还是iOS)进行验证时,很明显它没有通过

我很好奇A)开发人员是如何识别/检测应用程序在模拟器中运行的?B) 更重要的是,我如何隐藏或确保应用程序无法检测到它在模拟器中运行,并且它认为它在物理设备上


谢谢

这是一个检测设备是否为仿真器的函数。是的,我认为whisper会检测到这一点,并限制模拟器使用这些功能

public static boolean isEmulator() {
   return Build.FINGERPRINT.startsWith(MessengerShareContentUtility.TEMPLATE_GENERIC_TYPE) || 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(MessengerShareContentUtility.TEMPLATE_GENERIC_TYPE) && Build.DEVICE.startsWith(MessengerShareContentUtility.TEMPLATE_GENERIC_TYPE)) || "google_sdk".equals(Build.PRODUCT);
}

为了回答第二个问题,我不确定如何才能使仿真器作为真正的设备工作。但是,您可以做的可能是修改应用程序本身,以便在模拟器上工作。

这是一个检测设备是否为模拟器的函数。是的,我认为whisper会检测到这一点,并限制模拟器使用这些功能

public static boolean isEmulator() {
   return Build.FINGERPRINT.startsWith(MessengerShareContentUtility.TEMPLATE_GENERIC_TYPE) || 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(MessengerShareContentUtility.TEMPLATE_GENERIC_TYPE) && Build.DEVICE.startsWith(MessengerShareContentUtility.TEMPLATE_GENERIC_TYPE)) || "google_sdk".equals(Build.PRODUCT);
}
为了回答第二个问题,我不确定如何才能使仿真器作为真正的设备工作。但是,您可以做的可能是修改应用程序本身,以便在模拟器上工作