国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Android - Android實現(xiàn)GPS定位代碼實例

Android實現(xiàn)GPS定位代碼實例

2021-03-03 15:00Android開發(fā)網(wǎng) Android

這篇文章主要介紹了Android實現(xiàn)GPS定位實例,對關(guān)鍵操作部份給出代碼示例并做了一定的注釋,需要的朋友可以參考下

通過GPS取得的是一個Location類型的經(jīng)緯度, 可以轉(zhuǎn)換為兩個Double 緯度和經(jīng)度.
緯度: 23.223871812820435
緯度: 113.58986039161628
首先創(chuàng)建一個TextView和兩個Button

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<TextView
 android:id="@+id/text"
 android:layout_width="fill_parent"
  android:layout_height="wrap_content"  />
 
 <Button
  android:id="@+id/btnStart"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="定位" />
 <Button
  android:id="@+id/btnStop"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:text="停止" />


然后添加主Activity的代碼
Location 是存放經(jīng)緯度的一個類型
LocationManager是位置管理服務(wù)類型

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
private Button btnStart;
private Button btnStop;
private TextView textView;
private Location mLocation;
private LocationManager mLocationManager;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
 
 super.onCreate(savedInstanceState);
 setContentView(R.layout.main);
 
 btnStart = (Button)findViewById(R.id.btnStart);
 btnStop = (Button)findViewById(R.id.btnStop);
 textView = (TextView)findViewById(R.id.text);
 btnStart.setOnClickListener(btnClickListener); //開始定位
 btnStop.setOnClickListener(btnClickListener); //結(jié)束定位按鈕
}
gpsIsOpen是自己寫的查看當(dāng)前GPS是否開啟
getLocation 是自己寫的一個獲取定位信息的方法
mLocationManager.removeUpdates()是停止當(dāng)前的GPS位置監(jiān)聽
public Button.OnClickListener btnClickListener = new Button.OnClickListener()
{
 public void onClick(View v)
 {
  Button btn = (Button)v;
  if(btn.getId() == R.id.btnStart)
  {
   if(!gpsIsOpen())
    return;
   
  mLocation = getLocation();
   
   if(mLocation != null)
    textView.setText("維度:" + mLocation.getLatitude() + "\n經(jīng)度:" + mLocation.getLongitude());
   else
    textView.setText("獲取不到數(shù)據(jù)");
  }
  else if(btn.getId() == R.id.btnStop)
  {
   mLocationManager.removeUpdates(locationListener);
  }
 
 }
};
private boolean gpsIsOpen()
{
 boolean bRet = true;
 
 LocationManager alm = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
 if(!alm.isProviderEnabled(LocationManager.GPS_PROVIDER))
 {
  Toast.makeText(this, "未開啟GPS", Toast.LENGTH_SHORT).show();
  bRet = false;
 }
 else
 {
  Toast.makeText(this, "GPS已開啟", Toast.LENGTH_SHORT).show();
 }
 
 return bRet;
}
判斷當(dāng)前是否開啟GPS
private boolean gpsIsOpen()
{
 boolean bRet = true;
 
 LocationManager alm = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
 if(!alm.isProviderEnabled(LocationManager.GPS_PROVIDER))
 {
  Toast.makeText(this, "未開啟GPS", Toast.LENGTH_SHORT).show();
  bRet = false;
 }
 else
 {
  Toast.makeText(this, "GPS已開啟", Toast.LENGTH_SHORT).show();
 }
 
 return bRet;
}
該方法獲取當(dāng)前的經(jīng)緯度, 第一次獲取總是null
后面從LocationListener獲取已改變的位置
mLocationManager.requestLocationUpdates()是開啟一個LocationListener等待位置變化
private Location getLocation()
{
 //獲取位置管理服務(wù)
 mLocationManager = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
 
 //查找服務(wù)信息
 Criteria criteria = new Criteria();
 criteria.setAccuracy(Criteria.ACCURACY_FINE); //定位精度: 最高
 criteria.setAltitudeRequired(false); //海拔信息:不需要
 criteria.setBearingRequired(false); //方位信息: 不需要
 criteria.setCostAllowed(true);  //是否允許付費
 criteria.setPowerRequirement(Criteria.POWER_LOW); //耗電量: 低功耗
 
 String provider = mLocationManager.getBestProvider(criteria, true); //獲取GPS信息
 
 Location location = mLocationManager.getLastKnownLocation(provider);
 
 mLocationManager.requestLocationUpdates(provider, 2000, 5, locationListener);
 
 return location;
}
改方法是等待GPS位置改變后得到新的經(jīng)緯度
private final LocationListener locationListener = new LocationListener()
{
 public void onLocationChanged(Location location)
 {
  // TODO Auto-generated method stub
  if(location != null)
   textView.setText("維度:" + location.getLatitude() + "\n經(jīng)度:"
      + location.getLongitude());
  else
   textView.setText("獲取不到數(shù)據(jù)" + Integer.toString(nCount));
 }
 
 public void onProviderDisabled(String provider)
 {
  // TODO Auto-generated method stub
 }
 
 public void onProviderEnabled(String provider)
 {
  // TODO Auto-generated method stub
 }
 
 public void onStatusChanged(String provider, int status, Bundle extras)
 {
  // TODO Auto-generated method stub
  
 }
};

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国内自拍视频在线观看 | 91中文字幕 | 亚洲成人高清 | 亚洲伊人伊色伊影伊综合网 | 亚洲高清在线视频 | 日韩精品一区二区在线观看 | 天天色天天色 | 四虎影视免费看电影 | 国产黄色成人 | 色综合天天天天做夜夜夜夜做 | 亚洲精品日本 | 日韩精品一区二区三区在线观看视频网站 | 日韩在线观看成人 | 美女久久久久 | 性爽视频| 国产精品久久久久永久免费观看 | 日本久久免费 | 国产999免费视频 | 97av在线 | 精品天堂| 亚洲精品麻豆 | 久久久www成人免费无遮挡大片 | 性爽视频 | 黄片毛片免费观看 | 日韩在线看片 | 午夜午夜精品一区二区三区文 | 特黄一级 | 一级毛片免费完整视频 | 亚洲激情视频在线播放 | 成人午夜影院 | 日韩欧美国产精品 | 91午夜伦伦电影理论片 | 久久99久久久久久 | 久久九九 | 亚洲精品成人 | www.国产 | 成人精品久久久 | 人人爱夜夜爽日日视频 | 亚洲精品久久久久久久久久久久久 | 亚洲一级毛片 | 久久精品亚洲成在人线av网址 |