我想找出如何检查GPS是否还有信号,我该怎么做呢?我在用:
locationManager.addGpsStatusListener(new MyGPSListener());
private class MyGPSListener implements GpsStatus.Listener
{
public void onGpsStatusChanged(int event)
{
switch (event) {
case GpsStatus.GPS_EVENT_SATELLITE_STATUS:
if (mLastLocation != null) {
isGPSFix = (SystemClock.elapsedRealtime() - mLastLocationMillis) < 3000;
}
if (isGPSFix) {
mHandler.obtainMessage(GPS_ENABLED).sendToTarget();
} else {
mHandler.obtainMessage(GPS_DISABLED).sendToTarget();
}
break;
case GpsStatus.GPS_EVENT_FIRST_FIX:
isGPSFix = true;
break;
}
}
}但这不是解决办法,GPS信号在这里没有丢失。这只是“当设备不移动3秒=全球定位系统丢失”,但我希望事件的GPS是rly丢失,因为我使用这个在我的“汽车应用”.所以我需要知道我是否开车进了隧道,例如。
我在谷歌上搜索了一整天,我没有任何解决方案。它怎麽工作?为什么它不起作用?当android和其他应用程序知道的时候,我也想知道!
谢谢你的回答。
编辑:
我试着把这个和最新的速度结合起来,但是没有用.速度必须大于20公里/小时。如果我进入1公里/小时的隧道呢?没道理..。
发布于 2016-11-02 01:46:03
xml:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
onCreate:
NetState receiver = new NetState();
IntentFilter filter = new IntentFilter();
filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
this.registerReceiver(receiver, filter);
receiver.onReceive(this, null);
add class:
class NetState extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent arg1) {
ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if(!gprs.isConnected() && !wifi.isConnected())
{
AlertDialog.Builder ab = new AlertDialog.Builder(context);
ab.setMessage("please check network");
ab.setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
}).show();
}
else{
AlertDialog.Builder ab = new AlertDialog.Builder(context);
ab.setMessage("Network connect succeed!");
ab.setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
dialog.dismiss();
}
}).show();
}
}
}我希望这对你有帮助~
https://stackoverflow.com/questions/40369289
复制相似问题