最近發現微信等應用都有找附近的人 的新功能。
遍開始想看看gps
於是找了些網上的代碼,自己試了試:
public class GPS_testActivity extends Activity {
/** Called when the activity is first created. */
private LinearLayout mainView=null;
private TextView infoView=null;
private TextView locationView=null;
private LocationManager locationManager=null;
private LocationListener locationListener=null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mainView=new LinearLayout(this);
mainView.setOrientation(LinearLayout.VERTICAL);
infoView=new TextView(this);
mainView.addView(infoView);
locationView=new TextView(this);
mainView.addView(locationView);
setContentView(mainView);
locationManager_init();
}
/*locationManager初始化*/
void locationManager_init(){
locationManager =(LocationManager)this.getSystemService(GPS_testActivity.LOCATION_SERVICE);
locationListener_init();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,0, locationListener);
}
/*locatonListener初始化*/
void locationListener_init(){
locationListener=new LocationListener(){
//位置變化時觸發
public void onLocationChanged(Location location) {
System.out.println("onLocationChanged");
locationView.setText("時間:"+location.getTime()+"\n");
locationView.append("經度:"+location.getLongitude()+"\n");
locationView.append("緯度:"+location.getLatitude()+"\n");
locationView.append("海拔:"+location.getAltitude()+"\n");
}
//gps禁用時觸發
public void onProviderDisabled(String provider) {
System.out.println("onProviderDisabled");
Toast.makeText(GPS_testActivity.this, "請開啓GPS!", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(Settings.ACTION_SECURITY_SETTINGS);
startActivityForResult(intent, 0); // 此爲設置完成後返回到獲取界面
}
//gps開啓時觸發
public void onProviderEnabled(String provider) {
Toast.makeText(GPS_testActivity.this, "GPS正常", Toast.LENGTH_SHORT).show();
}
//gps狀態變化時觸發
public void onStatusChanged(String provider, int status,Bundle extras) {
System.out.println("onStatusChanged");
if(status==LocationProvider.AVAILABLE){
infoView.setText("當前GPS狀態:可見的\n");
}else if(status==LocationProvider.OUT_OF_SERVICE){
infoView.setText("當前GPS狀態:服務區外\n");
}else if(status==LocationProvider.TEMPORARILY_UNAVAILABLE){
infoView.setText("當前GPS狀態:暫停服務\n");
}
}
};
}
}
佈局很簡單幾個textView顯示而已,就不上了
客戶端得到gps數據傳給服務處理。。最後顯示出服務返回的數據 搞定!用戶看起來很神奇的功能,在代碼裏並不複雜。
不過服務器端處理數據稍微麻煩寫,需要根據經緯度找出你附近的人兒~
好了,希望對朋友們有用~