当前位置: 首页 > 知识库问答 >
问题:

使用模拟位置,而不在“设置”中进行设置

杜高谊
2023-03-14

我正在写一个应用程序,它利用了android中位置模拟的可能性。

我想要实现的是模拟我的位置,而不在开发者选项中设置“允许模拟位置”标志。

我知道这是可能的,因为是工程与此应用程序:https://play.google.com/store/apps/details?id=com.lexa.fakegps

我所尝试的:

生成一个apk,将其移动到/system/app,重新启动
,我还尝试了使用和不使用清单中的ACCESS\u MOCK\u LOCATION权限。

但这一切都会导致此异常:
RuntimeException:无法启动活动:SecurityException:需要访问\模拟\位置安全设置

共有3个答案

计胤
2023-03-14

试试这个http://repo.xposed.info/module/com.brandonnalls.mockmocklocations

如果打开“允许模拟位置”,一些应用程序不会让你使用它们,即使你没有嘲笑你的位置。这有助于防止应用程序检测到“允许模拟位置”已打开。

居和顺
2023-03-14

为此,您需要对设备的根访问权限。

周兴朝
2023-03-14

我已经反编译了com。莱克萨。伪GPS您在问题中提到过,它是这样做的:

private int setMockLocationSettings() {
    int value = 1;
    try {
        value = Settings.Secure.getInt(getContentResolver(),
                Settings.Secure.ALLOW_MOCK_LOCATION);
        Settings.Secure.putInt(getContentResolver(),
                Settings.Secure.ALLOW_MOCK_LOCATION, 1);
    } catch (Exception e) {
        e.printStackTrace();
    }
    return value;
}

private void restoreMockLocationSettings(int restore_value) {
    try {
        Settings.Secure.putInt(getContentResolver(),
                Settings.Secure.ALLOW_MOCK_LOCATION, restore_value);
    } catch (Exception e) {
        e.printStackTrace();
    }
}

/* every time you mock location, you should use these code */
int value = setMockLocationSettings();//toggle ALLOW_MOCK_LOCATION on
try {
    mLocationManager.setTestProviderLocation(LocationManager.GPS_PROVIDER, fake_location);
} catch (SecurityException e) {
    e.printStackTrace();
} finally {
    restoreMockLocationSettings(value);//toggle ALLOW_MOCK_LOCATION off
}

由于这些代码的执行时间非常短,其他应用程序很难检测到ALLOW_MOCK_位置的更改

您还需要,
1。需要根用户访问您的设备
2。将应用程序移动到/system/app/system/priv-app

我在我的项目中尝试过,效果很好。

 类似资料:
  • 问题内容: 我正在编写一个使用android中的位置模拟可能性的应用程序。 我想实现的是模拟我的位置,而无需在开发人员选项中设置“允许模拟位置”标志。 我知道这是可能的,因为它可以与此应用一起使用: https //play.google.com/store/apps/details?id=com.lexa.fakegps&hl=zh- CN 我试过的 生成一个apk,将其移动到/ system

  • 在eclipse中,您可以使用以下命令为模拟器设置GPS位置: 选择窗口 在模拟器控制面板中,在位置控制下输入GPS坐标作为单独的经纬度坐标,并使用GPX文件进行路线回放,或使用KML文件进行多个地点标记。(确保您在“设备”面板中选择了一个设备——可从窗口访问 这在Android Studio可能吗?

  • 问题内容: 位和位掩码是我一直在努力理解的东西,但是我想学习如何在PHP中使用它们进行设置和类似操作。 我终于找到了一个声称完全可以做到这一点的类,而且据我所知,它似乎可以工作,但是我不确定这是否是实现此目的的最佳方法。我将使用下面的示例代码发布类文件,以按工作顺序显示它。 如果您有经验,请告诉我是否可以改进,性能或其他方面。我真的很想学习这一点,而且我一直在阅读它,但是到目前为止,这对我来说很难

  • 我们知道有各种各样的应用程序,比如假冒我的GPS等等。但是这些应用程序使用开发者选项来激活模拟位置。检测模拟位置的应用程序通常会检查权限是否打开,并使用以下代码: 使用权限android: name="android.permission.ACCESS_MOCK_LOCATION"/ 我想知道是否有一种方法可以欺骗(更改)位置,而无需更改设备根目录或在Android上激活模拟位置设置。

  • 我有一个问题,而试图使用Android模拟位置,我的主要目标是设置Android GPS认为我们在一个不同的地方,又名假GPS。 我目前尝试了两种不同的类似解决方案,可在这两个网站上使用: 编程丛林 莫比亚奇 这两个教程都是2012年的,我不知道它们是否过时,或者我很难实现它们。 首先,我要确保我有权限: ACCESS_COARSE_LOCATION ACCESS_FINE_LOCATION AC

  • 我试图在我的应用程序中使用模拟位置进行测试。要接收位置更新,我使用最新的Android开发者留档在这里:https://developer.android.com/training/location/receive-location-updates 本教程使用FusedLocationProviderClient和locationClient。requestLocationUpdates(crea