Android判断GPS是否开启和让用户打开GPS
生活随笔
收集整理的這篇文章主要介紹了
Android判断GPS是否开启和让用户打开GPS
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
定位服務GPS:
全球衛星定位系統,使用24個人造衛星所形成的網絡來三角定位接受器的位置,并提供經緯度坐標。雖然GPS提供絕佳的位置的精確度,但定位的位置需要在可看見人造衛星或軌道所經過的地方。
定位服務AGPS:
輔助全球衛星定位系統(英語:Assisted Global Positioning System,簡稱:AGPS)是一種GPS的運行方式。它可以利用手機基地站的資訊,配合傳統GPS衛星,讓定位的速度更快。用中文來說應該是網絡輔助 GPS定位系統。通俗的說AGPS是在以往通過衛星接受定位信號的同時結合移動運營的GSM或者CDMA網絡機站的定位信息,就是一方面由具有AGPS的手機獲取來自衛星的定位信息,而同時也要靠該手機透過中國移動的GPRS網絡下載輔助的定位信息,兩者相結合來完成定位。與傳統 GPS(GlobalPositioningSystem全球定位系統)首次定位要2、3分鐘相比AGPS的首次定位時間最快僅需幾秒鐘,同時AGPS也徹底解決了普通GPS設備在室內無法獲取定位信息的缺陷。
GpsUtil工具類:
/*** GPS工具類** @author Zachary*/ public class GpsUtil {/*** 判斷GPS是否開啟,GPS或者AGPS開啟一個就認為是開啟的** @param context* @return true 表示開啟*/public static final boolean isOPen(final Context context) {LocationManager locationManager= (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);// 通過GPS衛星定位,定位級別可以精確到街(通過24顆衛星定位,在室外和空曠的地方定位準確、速度快)boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);// 通過WLAN或移動網絡(3G/2G)確定的位置(也稱作AGPS,輔助GPS定位。主要用于在室內或遮蓋物(建筑群或茂密的深林等)密集的地方定位)boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);if (gps|| network) {return true;}return false;}/*** 強制幫用戶打開GPS** @param context*/public static final void openGPS(Context context) {Intent GPSIntent = new Intent();GPSIntent.setClassName("com.android.settings", "com.android.settings.widget.SettingsAppWidgetProvider");GPSIntent.addCategory("android.intent.category.ALTERNATIVE");GPSIntent.setData(Uri.parse("custom:3"));try {PendingIntent.getBroadcast(context, 0, GPSIntent, 0).send();} catch (PendingIntent.CanceledException e) {e.printStackTrace();}}}感覺也沒打開gps,不知道怎么弄,彈出框子讓用戶自己去打開吧:
private void openGPS() {new AlertDialog.Builder(MapActivity.this).setIcon(android.R.drawable.ic_dialog_info).setTitle(R.string.information).setMessage("開啟定位").setNegativeButton(R.string.cancel,null).setPositiveButton(R.string.open, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int i) {Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);startActivityForResult(intent,887);dialogInterface.dismiss();}}).show();}返回結果進行監聽,成功打開之后在進行定位操作。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {switch(requestCode){case 887://開啟GPS,重新添加地理監聽startLocation();break;default:break;}super.onActivityResult(requestCode, resultCode, data);}?
總結
以上是生活随笔為你收集整理的Android判断GPS是否开启和让用户打开GPS的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初识powerpoint的计算机教案,《
- 下一篇: Android优雅地判断软键盘弹出状态