Android判断GPS是否开启和让用户打开GPS
定位服務(wù)GPS:
全球衛(wèi)星定位系統(tǒng),使用24個人造衛(wèi)星所形成的網(wǎng)絡(luò)來三角定位接受器的位置,并提供經(jīng)緯度坐標(biāo)。雖然GPS提供絕佳的位置的精確度,但定位的位置需要在可看見人造衛(wèi)星或軌道所經(jīng)過的地方。
定位服務(wù)AGPS:
輔助全球衛(wèi)星定位系統(tǒng)(英語:Assisted Global Positioning System,簡稱:AGPS)是一種GPS的運(yùn)行方式。它可以利用手機(jī)基地站的資訊,配合傳統(tǒng)GPS衛(wèi)星,讓定位的速度更快。用中文來說應(yīng)該是網(wǎng)絡(luò)輔助 GPS定位系統(tǒng)。通俗的說AGPS是在以往通過衛(wèi)星接受定位信號的同時結(jié)合移動運(yùn)營的GSM或者CDMA網(wǎng)絡(luò)機(jī)站的定位信息,就是一方面由具有AGPS的手機(jī)獲取來自衛(wèi)星的定位信息,而同時也要靠該手機(jī)透過中國移動的GPRS網(wǎng)絡(luò)下載輔助的定位信息,兩者相結(jié)合來完成定位。與傳統(tǒng) GPS(GlobalPositioningSystem全球定位系統(tǒng))首次定位要2、3分鐘相比AGPS的首次定位時間最快僅需幾秒鐘,同時AGPS也徹底解決了普通GPS設(shè)備在室內(nèi)無法獲取定位信息的缺陷。
GpsUtil工具類:
/*** GPS工具類** @author Zachary*/ public class GpsUtil {/*** 判斷GPS是否開啟,GPS或者AGPS開啟一個就認(rèn)為是開啟的** @param context* @return true 表示開啟*/public static final boolean isOPen(final Context context) {LocationManager locationManager= (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);// 通過GPS衛(wèi)星定位,定位級別可以精確到街(通過24顆衛(wèi)星定位,在室外和空曠的地方定位準(zhǔn)確、速度快)boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);// 通過WLAN或移動網(wǎng)絡(luò)(3G/2G)確定的位置(也稱作AGPS,輔助GPS定位。主要用于在室內(nèi)或遮蓋物(建筑群或茂密的深林等)密集的地方定位)boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);if (gps|| network) {return true;}return false;}/*** 強(qiáng)制幫用戶打開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();}返回結(jié)果進(jìn)行監(jiān)聽,成功打開之后在進(jìn)行定位操作。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {switch(requestCode){case 887://開啟GPS,重新添加地理監(jiān)聽startLocation();break;default:break;}super.onActivityResult(requestCode, resultCode, data);}?
總結(jié)
以上是生活随笔為你收集整理的Android判断GPS是否开启和让用户打开GPS的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初识powerpoint的计算机教案,《
- 下一篇: visio2003字号与word中的字号