Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android GPS应用程序在Emulator上不工作_Android_Android Emulator - Fatal编程技术网

Android GPS应用程序在Emulator上不工作

Android GPS应用程序在Emulator上不工作,android,android-emulator,Android,Android Emulator,我尝试让GPS定位在Android下为我的应用程序工作,但没有成功。我想知道我可能做错了什么。到目前为止,我已经尝试了以下方法: 和其他许多人一样,但都是徒劳的 考虑到以上所有解决方案都适用于某些人或其他人,我将使用此解决方案进行调试: package my.namespace; import android.app.Activity; import android.content.Context; import android.location.Location; import a

我尝试让GPS定位在Android下为我的应用程序工作,但没有成功。我想知道我可能做错了什么。到目前为止,我已经尝试了以下方法:

和其他许多人一样,但都是徒劳的

考虑到以上所有解决方案都适用于某些人或其他人,我将使用此解决方案进行调试:

package my.namespace;

import android.app.Activity;
import android.content.Context;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

public class HomeActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
    LocationListener ll = new mylocationlistener();
    lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, ll);
    }

    private class mylocationlistener implements LocationListener {
    public void onLocationChanged(Location location) {
        if (location != null) {
        Log.d("LOCATION CHANGED", location.getLatitude() + "");
        Log.d("LOCATION CHANGED", location.getLongitude() + "");
        Toast.makeText(HomeActivity.this,
            location.getLatitude() + "" + location.getLongitude(),
            Toast.LENGTH_LONG).show();
        }
    }
    public void onProviderDisabled(String provider) {
    }
    public void onProviderEnabled(String provider) {
    }
    public void onStatusChanged(String provider, int status, Bundle extras) {
    }
    }
}
这3种方法有
@override
注释
onProviderDisabled
onProviderEnabled
onStatusChanged
。我必须删除它们,因为Eclipse给出了一个错误,即这些方法没有重写超类

我已在清单文件中添加了权限(
ACCESS\u FINE\u LOCATION
ACCESS\u MOCK\u LOCATION
ACCESS\u rough\u LOCATION
INTERNET

有人知道我可能做错了什么吗

编辑:
在Emulator(Android 2.2 API 8)上运行时,请确保在测试应用程序时启用GPS。如果同时使用网络提供商和GPS提供商,也会有所帮助。因此,当GPS不可用时,您仍然可以通过网络提供商获得位置信息

更新:
此外,如果您使用emulator测试应用程序,请确保从命令行或使用Eclipse模拟GPS修复。这里是stackoverflow问题的链接,关于如何执行此操作

谢谢您的回复。我不认为我可以添加网络提供商,因为我正在模拟器上测试。我已经将GPS_提供程序作为参数传递给requestLocationUpdates方法。这意味着您正在emmulator中测试基于GPS的应用程序?是的,但如果您愿意,可以同时使用这两个提供程序。不管怎样,若你们在emulator上测试它,你们会通过模拟位置修正吗?要么从命令行,要么从eclipse。因为在emulator上,只有在您模拟位置修复时,应用程序才会获得位置更新。是的,我正在使用emulator测试此应用程序。我不知道模拟器的位置模拟。这像是在争论吗?我将搜索如何做这件事。非常感谢。@gkris很高兴能为您提供帮助。如果答案有帮助,记得接受它。我添加了一个链接,指向一个关于在模拟器上模拟gps定位的问题。你可以用它来做这件事。