android - 如何在 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)
});
}
解决方案
推荐阅读
- sql - Oracle:在运算符中获取空值?
- c++ - Visual Studio 16.7.0 2019 Release x64 Win10 Pro 2004 中的错误 LNK2005 和错误 LNK1169 多重定义
- android - Firebase 中没有服务器端编码的应用内通知
- python - IronPython“语法无效”
- java - 对同一 JMenu 内的 JMenuItem 组进行排序,而不对其他 JMenuItem 进行排序
- azure-machine-learning-service - 无法导入名称“RollingOriginValidator”
- angular - 如何调用模拟方法而不被间谍检测到?
- c - SEGFAULT 出现在 DevC++ 中,但不出现在其他编译器中
- python - 为社会设计可维护/可编辑的网站
- oracle - PLS-00123:程序太大(戴安娜节点)