权限ACCESS_MOCK_LOCATION被忽略?

Jaa*_*akL 9 gps android geolocation

我没有进行过广泛的测试,但有证据表明应用程序清单中的android.permission.ACCESS_MOCK_LOCATION不能正常工作(即,如果存在 - 允许模拟位置提供程序,否则不行).因此,https://play.google.com/store/apps/details? id = com.lexa.fakegps 这样的假GPS应用程序可以与任何应用程序一起使用,无论它是否设置了ACCESS_MOCK_LOCATION.如果用户在设备设置中允许虚假位置,这似乎就足够了.

也许ACCESS_MOCK_LOCATION真的意味着应用程序可以自己模拟位置提供程序?如果是这样,那么它应该更像WRITE_MOCK_LOCATION,而不是名称所暗示的访问(读取).听起来更像是bug而不是功能.如果这是真的,那么就没有办法真正确保GPS位置是真实的,而不是假的?

Pag*_*und 5

http://developer.android.com/reference/android/Manifest.permission.html 中,它说Allows an application to create mock location providers for testing,所以我认为你认为是对的。

事实上,只要它具有 root 权限,com.lexa.fakegps就可以模拟位置ACCESS_MOCK_LOCATION。此外,Allow mock locations即使它具有 root 权限,它也需要切换到模拟位置。所以,我认为权限是针对普通应用程序的,而不是针对系统应用程序的。系统应用程序有更多的权限来做没有在AndroidManifest.xml.


Jim*_*Jim 5

由于没有人真正回答您的问题,我将提供一个答案:

也许 ACCESS_MOCK_LOCATION 真的意味着应用程序本身可以成为模拟位置提供者?

是的。该权限允许应用程序“访问”“模拟位置”开发人员功能。这使得开发人员可以创建看似真实的模拟位置,以便开发/测试具有基于位置的功能的应用程序,而无需实际移动或更改(例如硬连线假 GPS)设备。

因为谷歌不知道你想要测试什么应用程序,也不知道你想要如何提供虚假数据,所以它这样做了。作为一个开发者功能,它减少了该功能对普通人群的曝光。