main.xml:
1 <?xml version="1.0" encoding="utf-8"?>
2 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
3 android:layout_width="fill_parent"
4 android:layout_height="fill_parent"
5 android:orientation="vertical" >
6
7 <TextView
8 android:layout_width="fill_parent"
9 android:layout_height="wrap_content"
10 android:text="@string/hello" />
11
12 <Button
13 android:id="@+id/locationButtonId"
14 android:layout_width="fill_parent"
15 android:layout_height="wrap_content"
16 android:text="@string/location" />
17
18 <Button
19 android:id="@+id/bestProviderButtonId"
20 android:layout_width="fill_parent"
21 android:layout_height="wrap_content"
22 android:text="@string/bestProvider" />
23
24 </LinearLayout>
strings.xml: 1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3
4 <string name="hello">Hello World, MainActivity!</string>
5 <string name="app_name">05_location02</string>
6 <string name="location">测试当前设备的provider</string>
7 <string name="bestProvider">最好的Provider</string>
8
9 </resources>
AndroidManifest.xml:
1 <?xml version="1.0" encoding="utf-8"?>
2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
3 package="gaolei.location02"
4 android:versionCode="1"
5 android:versionName="1.0" >
6
7 <uses-sdk android:minSdkVersion="8" />
8
9 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
10 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
11
12 <application
13 android:icon="@drawable/ic_launcher"
14 android:label="@string/app_name" >
15 <activity
16 android:name=".MainActivity"
17 android:label="@string/app_name" >
18 <intent-filter>
19 <action android:name="android.intent.action.MAIN" />
20
21 <category android:name="android.intent.category.LAUNCHER" />
22 </intent-filter>
23 </activity>
24 </application>
25
26 </manifest>
MainActivity.java: 1 package gaolei.location02;
2
3 import java.util.Iterator;
4 import java.util.List;
5
6 import android.app.Activity;
7 import android.content.Context;
8 import android.location.Criteria;
9 import android.location.LocationManager;
10 import android.os.Bundle;
11 import android.view.View;
12 import android.view.View.OnClickListener;
13 import android.widget.Button;
14
15 public class MainActivity extends Activity {
16 private Button locationButton;
17 private Button bestProviderButton;
18 private LocationManager locationManager;
19
20 @Override
21 public void onCreate(Bundle savedInstanceState) {
22 super.onCreate(savedInstanceState);
23 setContentView(R.layout.main);
24
25 locationButton = (Button) findViewById(R.id.locationButtonId);
26 bestProviderButton = (Button) findViewById(R.id.bestProviderButtonId);
27
28 locationManager = (LocationManager) MainActivity.this
29 .getSystemService(Context.LOCATION_SERVICE);
30 locationButton.setOnClickListener(new ProvidersButtonListener());
31 bestProviderButton.setOnClickListener(new BestProviderButtonListener());
32 }
33
34 private class ProvidersButtonListener implements OnClickListener {
35
36 @Override
37 public void onClick(View v) {
38 List<String> providers = locationManager.getAllProviders();
39 for (Iterator iterator = providers.iterator(); iterator.hasNext();) {
40 String provider = (String) iterator.next();
41 System.out.println(provider);
42 }
43
44 }
45
46 }
47
48 private class BestProviderButtonListener implements OnClickListener {
49
50 @Override
51 public void onClick(View v) {
52 // 声明一个Criteria对象
53 Criteria criteria = new Criteria();
54 // 设置查询条件
55 criteria.setAccuracy(Criteria.ACCURACY_FINE);
56 criteria.setPowerRequirement(Criteria.POWER_LOW);
57 criteria.setAltitudeRequired(false);
58 criteria.setSpeedRequired(false);
59 criteria.setCostAllowed(false);
60 String provider = locationManager.getBestProvider(criteria, false);
61 System.out.println("best provider ----->" + provider);
62
63 }
64
65 }
66 }