大家好,今天说说Android Location,Location在Android开发中还是经常用到的,比如通过经纬度获取天气,根据Location获取所在地区详细地址(比如Google Map开发)等。而在Android中通过LocationManager来获取Location,通常获取Location有GPS获取、WIFI获取。
我今天做一个简单的小Demo,来教大家如何获取Location,从而获取经纬度。下一节将教大家通过Location来获取Address。
第一步:创建一个Android工程命名为LocationDemo
第二步:修改main.xml代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
LinearLayout
xmlns:android
=
"http://schemas.android.com/apk/res/android"
android:orientation
=
"vertical"
android:layout_width
=
"fill_parent"
android:layout_height
=
"fill_parent"
>
<
TextView
android:id
=
"@+id/longitude"
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:text
=
"longitude:"
/>
<
TextView
android:id
=
"@+id/latitude"
android:layout_width
=
"fill_parent"
android:layout_height
=
"wrap_content"
android:text
=
"latitude:"
/>
</
LinearLayout
>
|
第三步:修改LocationDemo.java,代码如下:
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
|
package
com.android.tutor;
import
android.app.Activity;
import
android.content.Context;
import
android.location.Location;
import
android.location.LocationManager;
import
android.os.Bundle;
import
android.widget.TextView;
public
class
LocationDemo
extends
Activity {
private
TextView longitude;
private
TextView latitude;
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
longitude = (TextView) findViewById(R.id.longitude);
latitude = (TextView) findViewById(R.id.latitude);
Location mLocation = getLocation(
this
);
longitude.setText(
"Longitude: "
+ mLocation.getLongitude());
latitude.setText(
"Latitude: "
+ mLocation.getLatitude());
}
// Get the Location by GPS or WIFI
public
Location getLocation(Context context) {
LocationManager locMan = (LocationManager) context
.getSystemService(Context.LOCATION_SERVICE);
Location location = locMan
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if
(location ==
null
) {
location = locMan
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
return
location;
}
}
|
第四步:增加权限,修改AndroidManifest.xml代码如下(第14行为所增行):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
<
manifest
xmlns:android
=
"http://schemas.android.com/apk/res/android"
package
=
"com.android.tutor"
android:versionCode
=
"1"
android:versionName
=
"1.0"
>
<
application
android:icon
=
"@drawable/icon"
android:label
=
"@string/app_name"
>
<
activity
android:name
=
".LocationDemo"
android:label
=
"@string/app_name"
>
<
intent-filter
>
<
action
android:name
=
"android.intent.action.MAIN"
/>
<
category
android:name
=
"android.intent.category.LAUNCHER"
/>
</
intent-filter
>
</
activity
>
</
application
>
<
uses-sdk
android:minSdkVersion
=
"7"
/>
<
uses-permission
android:name
=
"android.permission.ACCESS_FINE_LOCATION"
/>
</
manifest
>
|
第五步:运行LocationDemo工程,所得效果如下(真机深圳测试):