相关疑难解决方法(0)

检查是否安装了应用程序 - Android

我正在尝试从Google Play安装应用.我可以理解,在打开Goog​​le Play商店网址时,它会打开Goog​​le Play,当我按下后退按钮时,活动会恢复.

Intent marketIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(appURL));
marketIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY | Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
startActivity(marketIntent);
Run Code Online (Sandbox Code Playgroud)

当我回到活动时,我试着调用它onResume()来检查应用程序是否已安装,但是我收到错误:

@Override
protected void onResume() {
    super.onResume();
    boolean installed = false;
    while (!installed) {
        installed  =   appInstalledOrNot(APPPACKAGE);
        if (installed) {
             Toast.makeText(this, "App installed", Toast.LENGTH_SHORT).show();
        }
    }
}

private boolean appInstalledOrNot(String uri) {
  PackageManager pm = getPackageManager();
  boolean app_installed = false;
  try {
      pm.getPackageInfo(uri, PackageManager.GET_ACTIVITIES);
      app_installed = true;
  }
  catch (PackageManager.NameNotFoundException e) {
      app_installed = false;
  }
  return app_installed ;
}
Run Code Online (Sandbox Code Playgroud)

错误如下:

E/AndroidRuntime(796):java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.appinstaller/com.example.appinstaller.MainActivity}:android.content.ActivityNotFoundException:找不到处理Intent的活动{act = …

android android-intent google-play

84
推荐指数
5
解决办法
10万
查看次数

在android中检测位置欺骗?

是否有一种可靠的方法来检测GPS给出的位置是一种欺骗(如果某个模拟位置已在后台设置到设备?

市场上有应用程序可以为GPS提供假位置.

https://play.google.com/store/apps/details?id=com.lexa.fakegps&hl=en

有根用户可以在不设置"允许模拟位置"选项的情况下运行假GPS.

有没有办法检测欺骗位置?

我在这里发布了解决方案,因为很少有人不知道这个问题. 禁用/检查模拟位置(防止gps欺骗)

gps android

16
推荐指数
0
解决办法
2820
查看次数

检测或阻止用户是否使用虚假位置

如果用户伪造该位置,我将阻止用户使用我的应用.所以我isFromMockProvider用来检查位置是否是假的(按照这里).但isFromMockProvider()在某些情况下可能会为伪造的位置返回false.

public void onLocationChanged(Location location) {
    textView.append("long:"+location.getLatitude()+" - lat:"+location.getLongitude()+" - isMock :"+location.isFromMockProvider() + "\n");
}
Run Code Online (Sandbox Code Playgroud)

我的情况是:我使用假冒伪劣GPS定位到一个位置然后我禁用虚假位置并转到我的应用程序.然后onLocationChanged返回假位置isFromMockProvider() = false

录像机:https://www.youtube.com/watch?v = rWVvjOCaZiI(在此视频中,我目前的位置是16.06,108.21,假位置是36.26,138.28.你可以在上一个视频中看到位置是36.26, 138.28但isFromMockProvider = false)

有没有办法检测用户在这种情况下是否使用虚假位置?任何帮助或建议将非常感谢.
DEMO项目

gps android location google-api-client

15
推荐指数
3
解决办法
3万
查看次数

一些应用程序(微信)如何忽略虚假位置然后检测真实位置?

我安装了一个虚假的位置应用程序,并设置我的位置不同.然后打开谷歌地图和微信应用,

  • 谷歌地图显示我的位置,我设置(假)
  • 微信应用程序忽略虚假位置并检测真实位置(如何?)

然后我想阻止微信分析我以前收到的真实位置和新假位置.

  • 卸载微信
  • 重启我的设备
  • 将我的位置设为假
  • 再次安装微信

但同样的结果,它检测到我的真实位置.

我真的很想了解他们是如何做到这一点的.有任何想法吗?


我试过的

  • Gps提供者恶搞
  • 网络提供商恶搞
  • 融合位置提供商恶搞
  • IP地理定位恶搞
  • Gps提供商恶搞+ IP地理定位恶搞

UPDATE

即使在禁用时也使用GPS.

在此输入图像描述

07-02 11:46:15.504 2346-2356 /?D/LocationManagerService:请求434a7e28 gps从com.tencent.mm请求[ACCURACY_FINE请求gps = + 1s0ms最快= + 1s0ms](10173)


结论

  • 您可以在较旧版本的微信上伪造位置(低于6.0)
  • 使用像BaiduLocationSDK这样的东西.它不受任何通过LocationManager和Fused提供程序的模拟尝试的影响.
  • 我不确定但是,好像百度位置SDK通过硬件级别使用GPS.

android location android-gps

10
推荐指数
1
解决办法
5万
查看次数

如何检测Android中的假GPS坐标?

是否有一种万无一失的方法来检测用户是否伪造他/她的GPS位置?

该技术应该适用于没有蜂窝连接硬件的Android设备.即仅限Wi-Fi

gps android

8
推荐指数
2
解决办法
3万
查看次数

Settings.Secure.ALLOW_MOCK_LOCATION始终返回1,即使模拟设置为关闭

我正在开发一个应用程序,如果使用这段代码启用模拟位置设置,用户将无法使用它

if (Settings.Secure.getString(context.getContentResolver(),
            Settings.Secure.ALLOW_MOCK_LOCATION).equals("0"))
        return false;
    else
        return true;
Run Code Online (Sandbox Code Playgroud)

好吧,它在我从KitKat到Marshmallow系统的大多数测试设备上运行良好,直到我在使用Marshmallow OS的这个设备上尝试我的应用程序,模拟设置显然是OFF,但上面的代码一直告诉我模拟设置为ON这是一个错误吗?还是我错过了什么?

gps android location

4
推荐指数
1
解决办法
3895
查看次数