首页 > 解决方案 > 如何在 React Native 中使用模拟位置 - Android

问题描述

我正在尝试编写反应本机模块以更改 android studio 中的 GPS 位置。我正在模拟位置开发人员设置中设置权限并设置应用程序名称。在那之后,它也不起作用,也没有任何错误。这是我的示例代码,

    @ReactMethod
    private Context mContext;
    public void mockLocation(String gps, Callback callback) {
        LocationManager mLocationManager = (LocationManager)mContext.getSystemService(Context.LOCATION_SERVICE);
          mLocationManager.removeTestProvider(LocationManager.GPS_PROVIDER);
          mLocationManager.addTestProvider
                  (
                          LocationManager.GPS_PROVIDER,
                          "requiresNetwork" == "",
                          "requiresSatellite" == "",
                          "requiresCell" == "",
                          "hasMonetaryCost" == "",
                          "supportsAltitude" == "",
                          "supportsSpeed" == "",
                          "supportsBearing" == "",

                          android.location.Criteria.POWER_LOW,
                          android.location.Criteria.ACCURACY_FINE
                  );

          Location newLocation = new Location(LocationManager.GPS_PROVIDER);

          newLocation.setLatitude (22.5726);
          newLocation.setLongitude(88.3639);

          newLocation.setAccuracy(500);

          mLocationManager.setTestProviderEnabled
                  (
                          LocationManager.GPS_PROVIDER,
                          true
                  );

          mLocationManager.setTestProviderStatus
                  (
                          LocationManager.GPS_PROVIDER,
                          LocationProvider.AVAILABLE,
                          null,
                          System.currentTimeMillis()
                  );

          mLocationManager.setTestProviderLocation
                  (
                          LocationManager.GPS_PROVIDER,
                          newLocation
                  );
        callback.invoke("Location changed");
      } 

我的反应代码是,

componentDidMount() {
    RNNativeToastLibrary.mockLocation("gps", (res) => {
      console.log(res)
    });
  }

标签: androidreact-nativereact-native-androidandroid-gps

解决方案


推荐阅读