如何检测位置提供商? GPS或网络提供商

时间:2013-12-03 12:02:35

标签: android geolocation gps location

我在我的应用中使用Fused Location Provider进行位置更新。根据Fused Location Provide文档,它使用所有可用资源(例如Wifi,GPS,Cell tower等)来优化位置。

但我想知道,有没有办法在位置更新接收器中检测当前位置更新来自GPS提供商或网络提供商?

2 个答案:

答案 0 :(得分:1)

您可以从您获得的位置location.getProvider()查看位置提供商。

您使用的是融合位置API或之前的位置,您将从locationManager.getLastKnownLocationLocationServices.FusedLocationApi.getLastLocation获取位置,并从location.getProvider

获取提供商的位置

答案 1 :(得分:0)

Google 发布位置监听器的新简单API之前几个月。

使用几行代码很简单。

让我解释一下

第1步:使用SDK管理器下载Google Play服务库。因为位置服务连接到Google Play。

第2步:将库导入您的工作区

第3步:将库添加到项目中

第4步:编写以下代码。

public class MainActivity extends Activity {

    LocationClient mlocationclient;

    Location location;

    LocationRequest mlocationrequest;

    int trasition_type=Geofence.GEOFENCE_TRANSITION_ENTER;

    LocationListener mlistener;

    PendingIntent lviolation;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        int isGooglePlayServiceAvilable = GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
        if (isGooglePlayServiceAvilable == ConnectionResult.SUCCESS) {
        //Create the location client
        mlocationclient=new LocationClient(getApplicationContext(),  new CallBack(), new ConnectError());

        mlocationclient.connect();



        //create the location request objetcs..
        mlocationrequest=LocationRequest.create().setInterval(1000).setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);




        //Crearte the location listener when we want to get location.
        mlistener=new LocationListener() {

            @Override
            public void onLocationChanged(Location location) {
                // TODO Auto-generated method stub


                Log.i("Mine Location", ""+location);

            }
        };

        public class ConnectError implements GooglePlayServicesClient.OnConnectionFailedListener
        {


            @Override
            public void onConnectionFailed(ConnectionResult result) {
                // TODO Auto-generated method stub

            }

        }

        public class CallBack implements GooglePlayServicesClient.ConnectionCallbacks
        {



            @Override
            public void onConnected(Bundle connectionHint) {
                // TODO Auto-generated method stub

                location=mlocationclient.getLastLocation();

                mlocationclient.requestLocationUpdates(mlocationrequest, mlistener);

                //new GetAddress(getApplicationContext()).execute(location);



            }


        }

步骤5:将此代码放入android清单文件

 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>` 


 <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />