问题标签 [android-reactivelocation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何使用 RxAndroid 将流正确拆分为 4 个操作?
我第一次尝试进入反应式编程。我正在使用适用于 Android 的ReactiveLocation库,并且我有 4 个文本视图需要在收到新位置时填充位置数据。
所以这是让我在每次位置更新时获得位置的代码:
我也有这个 Func 将位置拆分为 4 个字符串的数组:
最后我有这个动作来用文本填充 TextView:
我现在想要的是每次将此流拆分为 4 个视图,我知道对于一个视图,我将执行以下操作:
如何使用相同的流填充其他 3 个 TextView:LongitudeValue、tvLastUpdateValue、tvSpeedValue?
android - RXJava如何使可观察的继续onError
考虑以下示例:
在这里,我观察自动完成视图上的文本更改,并对其采取行动以使用Android-ReactiveLocation获取相关的地址建议。它工作得很好,直到 geocode observable 发生错误,导致 onError 在最终订阅者上被调用。自从发生此错误以来, WidgetObservable 将不再发出事件。
我该如何解决它,以便 onError 不会导致 Observable 停止发出文本更改事件,以便整个流程继续发生?
顺便说一句,我是 Reactive 编程和 RXJava 的新手,所以任何对我的代码的改进建议都会受到欢迎:)
android - 即使在 android marshmallow 中请求许可后,检索位置的代码也不会执行
我正在尝试使用此库检索用户的当前位置。
该代码在 android M 以下版本中成功获取位置,但是当我在具有 Android Marshmallow 的设备上启动该应用程序时,这段代码甚至没有被执行!
我在 onCreate() 方法中编写了这段代码:
在 android marshmallow 设备上运行该应用程序时,我没有得到这个 toast:Toast.makeText(getBaseContext(), "User's location retrieved using library", Toast.LENGTH_SHORT).show();
这意味着这个代码没有被执行!
在编写此代码之前,我已使用以下代码请求许可:
这是onRequestPermissionsResult()
的代码:
onRequestPermissionResult()
即使在's 的情况下,我也已经编写了位置检索代码PERMISSION_GRANTED
,但是什么都没有发生,并且在 android marshmallow 版本中没有检索到任何位置!
请让我知道这里出了什么问题!
android - GPS 已打开,但代码仍未执行。请查看详情
我正在开发一个应用程序,我只想在启用 GPS 的情况下执行一段代码。
我正在使用这段代码检查 GPS:
现在,我像这样使用它:
问题是,即使在打开 GPS 之后,Snackbar
仍然会弹出显示No location detected!
消息,这意味着即使在 GPS 开启时,应该在 GPS 关闭时执行的代码也会被执行。
需要注意的另一件事是,当我在关闭应用程序后重新打开应用程序时,应该在 GPS 开启时执行的代码将毫无问题地执行。
这里出了什么问题?
请告诉我。
android - 为什么'locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);' 无法在 android marshmallow 中检测 GPS 是否打开?
我正在开发一个应用程序,其中需要 GPS 来检测用户的当前位置并继续进行。所以,我正在使用这个代码:isGPSEnabled = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
检测 GPS 是否打开,如果它关闭,则提示用户打开它。这段代码可以完美地检测它是否关闭,但是当我打开 GPS 并尝试进一步进行时。上面的代码未能检测到 GPS 已打开,并再次提示用户打开 GPS,即使它已打开。
以下是我在打开 GPS 后尝试进一步进行的方式:
我已经在 onCreate() 方法中请求了许可:
所以,最重要的是,即使打开 GPS 并单击“重试”按钮,在 GPS 开启时应该执行的代码也没有被执行!
这里出了什么问题?
请告诉我。
android - 即使在所有条件都为真之后,某些代码也不会被执行。请查看详情
我正在开发一个应用程序并使用以下代码来获取用户的当前坐标(来自这个库):
问题是即使在所有条件都为真之后,这段代码有时甚至都不会被执行。请看下面的代码:
运行上面的代码后,由于这段代码的 toast 被显示:Toast.makeText(getBaseContext(), "called from btnRetryGpsEvents() - GPS available", Toast.LENGTH_SHORT).show();
这意味着它正在被执行,但是它上面的 toast 即:Toast.makeText(getBaseContext(), "User's location retrieved using library for android M in btnRetryGpsEvents()", Toast.LENGTH_SHORT).show();
没有显示,这意味着它没有被执行!
这怎么可能发生?这里怎么了???
请告诉我。
PS:这个问题只在Android M及以上出现。
android - 在 Android 中使用 RetroFit2 的 ReactiveLocationProvider 抛出 NetworkOnMainThread
下面的代码在 Android 上始终抛出 NetworkOnMainThread,调用尝试是获取位置并使用它通过 RetroFit 2 API 获取列表,这在其他情况下工作正常,ReactiveLocation 调用也是如此。
getLastKnownLocation() 工作正常,然后 RetroFit 包装器调用,在其他任何地方都有效,抛出 NetworkOnMainThreadException,我尝试了 0.9 和 0.10,当它们自己在单独的订阅中时,一切都很好。
预期的结果是 flatMap() 的结果在 io() 调度程序上运行,而不是在 mainThread() 上。
android - Android-ReactiveLocation:调用()未执行
我正在尝试使用mcharmas的 Android-ReactiveLocation。
什么都没有发生,即它永远不会到达call
方法。设备的位置信息已打开。使用 GPS 应用程序,我可以看到 GPS 正在工作。在Settings > Location > Recent location request中,我的应用在列表中排在第一位。没有错误消息。
我肯定错过了什么。它是什么?
我在应用程序 build.gradle 中包含 Reactive Location,如下所示:
我在 Google Play 上创建了一个 API 密钥并将其放入清单文件中:
在我项目的 gradle.properties 文件中,我添加了:
MainActivity.OnCreate():