在FusedLocationProviderClient

时间:2018-06-11 15:12:23

标签: android google-maps gps location

我正在尝试在我的应用中使用模拟位置进行测试。为了接收位置更新,我在这里使用了最新的android开发者文档: https://developer.android.com/training/location/receive-location-updates

本教程使用FusedLocationProviderClient和locationClient.requestLocationUpdates(createLocationRequest(),locationCallback,null)作为示例。

问题是我不能再使用权限了:

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />

因为我收到错误&#34;权限仅授予系统应用程序&#34; (我也尝试过调试模式)

所以我尝试了以下代码,但它不起作用:

    locationClient.setMockMode(true);

    String[] tokens = location.split(",");
    Location newLocation = new Location(LocationManager.GPS_PROVIDER);
    newLocation.setLatitude(Float.parseFloat(tokens[0]));
    newLocation.setLongitude(Float.parseFloat(tokens[1]));

    newLocation.setAccuracy(3.0f);

    newLocation.setTime(System.currentTimeMillis());


    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
        newLocation.setElapsedRealtimeNanos(SystemClock.elapsedRealtimeNanos());
    }
    locationClient.setMockLocation(newLocation);

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:-1)

似乎添加了

<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />

调试Android清单的权限即使Android Studio说&#34;权限仅授予系统应用程序&#34;。

所以解决方法是,在添加它之后,运行应用程序,然后转到Settings / Developer options / Select mock location app - &gt;这里我的应用程序出现了,我可以选择它。

我希望其他人可以确认并使用它!