Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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_Android_Gps_Location - Fatal编程技术网

位置更改通知android

位置更改通知android,android,gps,location,Android,Gps,Location,我正在Android中测试onLocationChanged方法,我实现了一种方法,当我点击一个按钮时,应用程序返回一个带有新lat和lng值的字符串。但现在我尝试在每次位置改变时自动显示结果。这就是我目前要做的: location manager public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); int minTime = 30000; LocationMana

我正在Android中测试onLocationChanged方法,我实现了一种方法,当我点击一个按钮时,应用程序返回一个带有新lat和lng值的字符串。但现在我尝试在每次位置改变时自动显示结果。这就是我目前要做的:

location manager

public void onCreate(Bundle savedInstanceState) 
{
super.onCreate(savedInstanceState);   

int minTime = 30000;
LocationManager locationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
MyLocationListener myLocListener = new MyLocationListener();
criteria.setPowerRequirement(Criteria.POWER_LOW);
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setSpeedRequired(false);
String bestProvider = locationManager.getBestProvider(criteria, false);

locationManager.requestLocationUpdates(bestProvider, minTime, 1, myLocListener );
位置改变

public void onLocationChanged(Location loc) {

  if(loc != null){

  lat1 = loc.getLatitude();
  lng1 = loc.getLongitude();
  
  currentlocation = "Location changed to lat: " + lat + "" + "lng: " + lng1 ;

    Context context = getApplicationContext();
    CharSequence text = currentlocation;
    int duration = Toast.LENGTH_LONG;

    Toast toast = Toast.makeText(context, text, duration);
    toast.show();
   
  
  }
}

我已将requestlocationupdates方法设置为每60000毫秒请求并更新一次 我的问题是,当位置改变时,应用程序从不烘烤lat和lng值。我已经用模拟器测试了应用程序,并尝试将lat和lng值远程联网。我还开着我的车四处看看数值是否有变化。

试试:

currentlocation = "Location changed to lat: " + String.valueOf(lat1) + "" + "lng: " + String.valueOf(lng1) ;
对于测试,您只需使用:

requestLocationUpdates(LocationManager.GPS_PROVIDER... 

谢谢goodm它工作得很好,我必须使用GPS\U提供商吗?或者我可以使用设备能找到的最好的提供商吗?再次干杯你可以用你的一个,我用GPS\U提供商,来检查它是否真的有效。如果有帮助的话,你能“补充”我的答案吗:)