一、实现效果
百度地图获取定位
二、实现细节
1.activity
private final MyLocationListener myListener = new MyLocationListener(new MyLocationListener.LocationCallback() {
@Override
public void onLocationChanged(BDLocation location) {
textView.append("验证信息:" + location.getCountry()+"\n");
}
});
2.Listener
public interface LocationCallback{
void onLocationChanged(BDLocation location);
}
LocationCallback locationCallback;
public MyLocationListener(LocationCallback locationCallback) {
this.locationCallback = locationCallback;
}
3.详解
LocationCallback
是一个接口,在这段代码中用于接收百度定位结果并进行特定处理。在MyLocationListener
类中定义了LocationCallback
接口,该接口只有一个方法onLocationChanged
,用于在定位结果发生变化时被调用。
在BaiduSDKActivity
中,创建了一个MyLocationListener
的实例,并通过匿名内部类实现了LocationCallback
接口,在onLocationChanged
方法中,将定位结果中的国家信息追加到TextView
中。
总结:LocationCallback
接口在这个示例中起到了传递定位结果并进行特定处理的作用,通过在BaiduSDKActivity
中实现该接口的方法,实现了对定位结果的定制化处理,将国家信息显示在TextView
中。
三、完整demo
1.activity
package com.example.testbaidusdk;
import android.content.pm.PackageManager;
import android.os.Build;
import android.os.Bundle;
import com.baidu.location.BDLocation;
import com.baidu.location.LocationClient;
import com.baidu.location.Locati