首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓- IntelliJ模拟器中的模拟位置问题

安卓- IntelliJ模拟器中的模拟位置问题
EN

Stack Overflow用户
提问于 2012-07-26 07:07:45
回答 1查看 820关注 0票数 0

我是Android开发的新手,我遇到了一个奇怪的问题,我正在尝试开发一个应用程序,以获得最新的速度。有时,这个应用程序看起来运行得很好,但大多数情况下并非如此。我试着从一个应用程序中简单地设置设备的GPS纬度/经度;仅此而已。我利用了从其他帖子中收集的大量知识,但最终,我不确定我的应用程序是否由于模拟器的怪癖而无法工作,或者这是否是我的代码。作为参考,我正在使用IntelliJ,我的目标是2.3.3,我确实在我的模拟器上启用了GPS,并且我确实在我的清单中设置了适当的权限。

奇怪的是,当我打开模拟器,然后我通过终端远程登录并通过"geo fix“设置地理位置,然后返回应用程序,它会显示我输入的GPS经度/纬度。但通常情况下,它根本不起作用。当我尝试通过代码中的模拟位置以编程方式执行此操作时,我得到了相同的结果。

下面是我的onCreate()方法(locationManager是一个类级字段)顶部的代码:

代码语言:javascript
复制
    locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
    locationManager.addTestProvider(LocationManager.GPS_PROVIDER, false, false, false, false, false, true, true, 0, 5);

..And当用户在UI中键入经度/经度并点击提交按钮时,在提取字段并执行一些简单验证后,将调用以下代码:

代码语言:javascript
复制
Location mLocation = new Location(LocationManager.GPS_PROVIDER);
mLocation.setLatitude(Float.valueOf(inputLat));
mLocation.setLongitude(Float.valueOf(inputLong));
mLocation.setTime(System.currentTimeMillis());

locationManager.setTestProviderEnabled(LocationManager.GPS_PROVIDER, true);
locationManager.setTestProviderLocation(LocationManager.GPS_PROVIDER, mLocation);

refreshTheLocation();

作为参考,refreshTheLocation()方法是:

代码语言:javascript
复制
public void refreshTheLocation() {
    LocationResult locationResult = new LocationResult(){
        @Override
        public void gotLocation(Location location){
            final Location finalLoc = location;

            if (location != null) {
                runOnUiThread(new Runnable() {
                    public void run() {
                        TextView gpsTextView = (TextView) findViewById(R.id.gps_label);
                        gpsTextView.setText("GPS DATA FOUND:\nLatitude: " + finalLoc.getLatitude() + "\nLongitude: " + finalLoc.getLongitude());
                     }
                });
            } else {
                runOnUiThread(new Runnable() {
                   public void run() {
                      TextView gpsTextView = (TextView) findViewById(R.id.gps_label);
                      gpsTextView.setText("GPS data not found");
                   }
                });
            }
        }
   };
   MyLocation myLocation = new MyLocation();
   myLocation.getLocation(this, locationResult);
}  

"MyLocation“类只是从这篇文章中排名最高的答案中复制/粘贴过来的:

What is the simplest and most robust way to get the user's current location on Android?

对我的问题有什么想法吗?似乎有1/5的时间,它会获得GPS坐标并显示它们,但另外4/5的时间,它不会。当它工作时,当我通过输入字段和按钮更改坐标时,它永远不会更新坐标。

请对我手下留情,因为我对这玩意儿还不熟悉。;)提前感谢你们能提供的任何帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-26 11:06:47

如果您的目标是2.3.3版本,并且已经在2.3.3版本的AVD上进行了测试,我建议您切换到2.3.3版本的Google API,然后尝试模拟位置。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11659990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档