我正在创建一个使用 GPS 的应用程序。我第一次onCreate()
检查 GPS 是否启用。如果它没有启用,那么我会将用户发送到设置菜单以设置启用 GPS。
一旦启用 GPS,我就开始执行我的工作。但是,如果用户在通知管理器上停止 GPS 滚动,那么我怎么知道呢?
因为我的方法只在 GPS 未启用时执行一次。之后,当它再次被禁用时它不会被执行。
I just want to know whenever in between the work the GPS is disabled by the user. Just this information is required.
这是我的代码。
class LocationFinderService extends Service{
boolean gps_enabled;
LocationManager locationManager;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
if(!isGpsEnabled())
{
startGpsForLocation();
stopSelf();
}
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
public boolean isGpsEnabled()
{
gps_enabled = (locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER)&& locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER));
Log.i("Log", "Gps: "+gps_enabled);
return gps_enabled;
}
public void startGpsForLocation()
{
Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK) ;
startActivity(intent);
Toast.makeText(this, "Please start the GPS", Toast.LENGTH_LONG).show();
}
}
我在 Activity 类的按钮单击时调用此服务。
任何帮助,将不胜感激。