android如何设置手机的假位置

android如何设置手机的假位置,android,location,Android,Location,我试图对手机使用模拟位置,但它显示异常 我的代码在下面 Location location = new Location(MOCK_PROVIDER_NAME); location.setLatitude(latitude); location.setLongitude(longitude); location.setTime(new Date().ge

我试图对手机使用模拟位置,但它显示异常

我的代码在下面

Location location = new Location(MOCK_PROVIDER_NAME);
                        location.setLatitude(latitude);
                        location.setLongitude(longitude);
                        location.setTime(new Date().getTime());
                        locationManager.setTestProviderEnabled(MOCK_PROVIDER_NAME, true);
                        locationManager.setTestProviderLocation(MOCK_PROVIDER_NAME, location);
                        Toast.makeText(getBaseContext(),"Latitude: "+location.getLatitude()+" Longitude: "+location.getLongitude(), Toast.LENGTH_SHORT)
                        .show();
我给了MOCK_PROVIDER_NAME=“gps”,但这一个不起作用,我也尝试了“网络”和“欺骗”,但它不起作用

我哪里出错了,请任何人告诉我。
谢谢

您的问题有两个可能的原因:

安全例外情况:

如果访问\u模拟\u位置权限不存在或 Settings.Secure.ALLOW\u MOCK\u位置系统设置未启用

或IllegalArgumentException:

如果具有给定名称的提供程序已存在

我从以下地方得到这些引语:

如果它不是您得到的异常之一,那么给我们错误的堆栈跟踪,以及堆栈跟踪在代码中显示的任何一行都是问题所在


我猜您没有在清单中声明权限和/或在开发设置中禁用“允许模拟位置”

以下是您的问题的两个可能原因:

安全例外情况:

如果访问\u模拟\u位置权限不存在或 Settings.Secure.ALLOW\u MOCK\u位置系统设置未启用

或IllegalArgumentException:

如果具有给定名称的提供程序已存在

我从以下地方得到这些引语:

如果它不是您得到的异常之一,那么给我们错误的堆栈跟踪,以及堆栈跟踪在代码中显示的任何一行都是问题所在


我猜您没有在清单中声明权限和/或在开发设置中禁用“允许模拟位置”

我授予了权限,并且在手机中启用了MOCK_位置,它显示了参数“gps”、“网络”的异常。如果给定名称的提供商已经存在,则您将获得一个IllegalArgumentException。如果这不能解决问题,你会遇到什么异常?我授予了权限,并且我在手机中启用了模拟位置,它显示参数“gps”、“网络”的异常如果给定名称的提供商已经存在,你会得到一个IllegalArgumentException。如果这不能解决问题,您会遇到什么异常?