我想将应用程序的最低API级别从5.0(Lollipop)降低到4.4(KitKat)
可悲的是,我无法获得任何真实的设备所以我必须使用模拟器。
我的应用严重依赖于用户的位置,因此主要测试必须定位位置更改功能。
我已经制作了 4.4模拟器并且工作正常,我的应用程序正常但是当我尝试通过扩展控制面板发送位置时没有任何反应。
如果我加载GPX文件,则位置会显示在GPS数据播放内的扩展控制面板的表格中,但设备无法获取任何位置。
我填写纬度和经度点击" SEND"但没有任何反应。
"发送"按钮根本无法点击,长和lat字段被禁用,我无法填充任何内容。 " GPX"和" KML"选项卡也被禁用。
进度条确实增加了,所以不像我尝试的前两种方法最终看起来实际上做了一些,但模拟器仍未获得位置更改。完全没有。
telnet localhost 5554
但我有Connection refused
错误消息。
所以我无法尝试通过以下方式发送位置:
geo fix <longitude value> <latitude value>
(在我的Windows上启用了Telnet)
答案 0 :(得分:66)
答案 1 :(得分:8)
SDK Tools 25.1.7版本遇到了同样的问题。我已将它们更新为25.2 rc1,现在可以使用了。
请注意,您无法从Android Studio安装RC版本。您必须启动单独的Android SDK Manager才能看到它。
重新启动模拟器并检查您确实在扩展控件窗口的“帮助/关于”屏幕中使用了最新版本。
答案 2 :(得分:7)
在我的情况下,原因是在“省电”设置的手机设置中的位置设置。 将其切换为“高精度”并且有效。
答案 3 :(得分:5)
使用OS X
和Android Studio
,遇到了同样的问题,对我有用的是:转到实际的手机(模拟器)设置,位置,关闭位置并重新打开。再次测试,并开始工作。
我认为它并不重要,但仿真器版本:26.0.3-3965150.
答案 4 :(得分:3)
简单的模拟器重新启动为我完成了工作(长按关闭按钮并选择重新启动)
答案 5 :(得分:1)
答案 6 :(得分:1)
模拟器用户:
如果您尝试从扩展控制器传递经度和纬度值,则必须在MainActivity中添加此代码。
String LOCATION_PROVIDER = LocationManager.GPS_PROVIDER;
在AndroidManifest中
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
答案 7 :(得分:1)
答案 8 :(得分:0)
我还试图通过Android设备监视器的“仿真器控制”选项卡模拟位置更改 “发送”按钮根本不可点击,长和lat字段被禁用,我无法填充任何内容。 “GPX”和“KML”标签也被禁用。
答案 9 :(得分:0)
我也遇到过这个问题,我从别人手中接过了一个骨架项目,无法让模拟器拿起GPS位置。
在我的情况下,问题是默认情况下在Android Studio中使用的项目中选择的LocationManager,该项目使用的是网络而不是GPS
答案 10 :(得分:0)
我在FusedLocationProviderClient中也遇到了同样的问题,我通过将代码添加到SettingsClient对象的addOnFailureListener中来解决此问题,该对象公开了ResolvableApiException对象。我只是打了个电话到:
(resolvableApiException as ResolvableApiException).startResolutionForResult(mainActivity, 6)
这显示了一个弹出窗口,我单击“确定”后,AVD问题已解决。 希望这会有所帮助。
答案 11 :(得分:0)
对我来说,只需打开Goggle映射并跳过配置即可。从默认位置开始,然后更改为我配置的位置
信息:
模拟的设备:像素3A
仿真器版本:30.0.12-6466327
Android版本:10.0(Q)-API 29
答案 12 :(得分:0)
尽力而为:清除仿真器数据,然后重试。这是在Android Studio更新了AVD之后为我解决的问题。