我想在Android模拟器上使用gps,我有以下代码:
public class NL extends Activity {
private LocationManager locmgr = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.nl);
locmgr = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria crit = new Criteria();
crit.setAccuracy(Criteria.ACCURACY_FINE);
String provider = locmgr.getBestProvider(crit, true);
Location loc = locmgr.getLastKnownLocation(provider);
Toast msg = Toast.makeText(this, "Lon: " + Double.toString(loc.getLongitude()) + " Lat: " + Double.toString(loc.getLatitude()), Toast.LENGTH_SHORT);
msg.show();
}
}
Run Code Online (Sandbox Code Playgroud)
我在清单上添加了以下行:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
Run Code Online (Sandbox Code Playgroud)
并且我使用DDMS方法和geo fix方法设置gps位置,但是当我运行代码时,我在Toast行获得NullPointerExeption,可能导致loc为null.
我不明白错误在哪里......你能帮帮我吗?
UPDATE!
感谢您的帮助,现在我使用以下代码,我没有得到任何错误,但它没有运行onChangeLocation内的代码...它不运行Toast并且不返回日志中的任何消息!
public class NL extends Activity {
private LocationManager locmgr = null;
@Override
public void …Run Code Online (Sandbox Code Playgroud) 我正在为Android操作系统开发一个应用程序,我刚开始,但我无法在模拟器上运行GPS.我已经在互联网上读到你需要向模拟器发送地理定位以启用gps locationProvider.我都在使用DDMS和telnet来尝试发送它,但是logcat从未告诉我它已经恢复了一个新的修复程序,而我的apolication仍然认为gps是禁用的
这是我的代码
package eu.mauriziopz.gps;
import java.util.Iterator;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
public class ggps extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LocationManager l =(LocationManager) getSystemService(Context.LOCATION_SERVICE);
List<String> li = l.getAllProviders();
for (Iterator<String> iterator = li.iterator(); iterator.hasNext();) {
String string = iterator.next();
Log.d("gps", string);
}
if (l.getLastKnownLocation("gps")==null)
Log.d("gps", "null");
}
}
Run Code Online (Sandbox Code Playgroud)
我已经读过DDMS可能无法在非英语操作系统上正常工作,但telnet应该可以工作!
更新:在设置中启用了gps