如果在第一个实例中找不到位置,我应该怎么做才能关闭gps ..没有调用位置更新
package mobile.sales;
import java.text.SimpleDateFormat;
import java.util.Date;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.net.Uri;
import android.os.Bundle;
import android.provider.Settings;
import android.util.Log;
public class test extends Activity
{
DataSource dataSource;
Double lat=0.0,lng=0.0;
String GPS_FILTER = "";
Thread triggerService;
LocationListener locationListener;
LocationManager lm;
private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1000; // in Meters
private static final long MINIMUM_TIME_BETWEEN_UPDATES = 29*1000*60; // in Milliseconds
protected LocationManager locationManager;
boolean isRunning = true;
NotificationManager notificationManager;
PendingIntent contentIntent;
Notification notification;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
turnGPSOn();
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,MINIMUM_TIME_BETWEEN_UPDATES, MINIMUM_DISTANCE_CHANGE_FOR_UPDATES, locationListener);
}
@Override
public void onDestroy()
{
// TODO Auto-generated method stub
locationManager.removeUpdates(locationListener);
locationManager= null;
turnGPSOnOff();
super.onDestroy();
// removeGpsListener();
}
private class MyLocationListener implements LocationListener
{
public void onLocationChanged(Location location)
{
lat=location.getLatitude();
lng=location.getLongitude();
turnGPSOnOff();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String currentDateandTime = sdf.format(new Date());
SimpleDateFormat sdft = new SimpleDateFormat("hh:mm:ss");
String time=sdft.format(new Date());
dataSource.insertIntoLocationDetails(""+lat,""+lng,currentDateandTime,""+time);
Log.d("service","location Inserted");
}
public void onStatusChanged(String s, int i, Bundle b) {
}
public void onProviderDisabled(String s) {
}
public void onProviderEnabled(String s) {
}
}
private void turnGPSOnOff(){
Intent intent = new Intent("android.location.GPS_ENABLED_CHANGE");
intent.putExtra("enabled", false);
sendBroadcast(intent);
}
private void turnGPSOn(){
String provider = Settings.Secure.getString(getContentResolver(), Settings.Secure.LOCATION_PROVIDERS_ALLOWED);
if(!provider.contains("gps")){
final Intent poke = new Intent();
poke.setClassName("com.android.settings","com.android.settings.widget.SettingsAppWidgetProvider");
poke.addCategory(Intent.CATEGORY_ALTERNATIVE);
poke.setData(Uri.parse("3"));
sendBroadcast(poke);
}
}
}
答案 0 :(得分:0)
答案 1 :(得分:0)
new Handler()。postDelayed(new Runnable(){ @覆盖 public void run() { turnGPSOnOff(); } },2000 * 60); 这将在一段时间后关闭我的gps