編輯:關於Android編程
package com.example.gpstest; import org.apache.http.util.LangUtils; import android.content.Context; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.location.Criteria; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.text.TextUtils; /** * 保證這個類只存在一個實例 * @author zehua * */ public class GPSInfoProvider { LocationManager manager; private static GPSInfoProvider mGPSInfoProvider; //單例 private static Context context; //單例 private static MyLoactionListener listener; //單例 //1.私有化構造方法 private GPSInfoProvider(){}; //2. 提供一個靜態的方法 可以返回他的一個實例 public static synchronized GPSInfoProvider getInstance(Context context){ if(mGPSInfoProvider==null){ synchronized (GPSInfoProvider.class) { if(mGPSInfoProvider == null){ mGPSInfoProvider = new GPSInfoProvider(); GPSInfoProvider.context = context; } } } return mGPSInfoProvider; } // 獲取gps 信息 public String getLocation(){ manager =(LocationManager) context.getSystemService(Context.LOCATION_SERVICE); //獲取所有的定位方式 //manager.getAllProviders(); // gps //wifi // //獲取當前手機最好的位置提供者 String provider = getProvider(manager); // 注冊位置的監聽器 //60000每隔一分鐘獲取當前位置(最大頻率) //位置每改變50米重新獲取位置信息 //getListener()位置發生改變時的回調方法 manager.requestLocationUpdates(provider,60000, 50, getListener()); //拿到最後一次的位置信息 SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE); String location = sp.getString("location", ""); return location; } //停止gps監聽 public void stopGPSListener(){ manager.removeUpdates(getListener()); } //獲取gps監聽實例 private synchronized MyLoactionListener getListener(){ if(listener==null){ synchronized (GPSInfoProvider.class) { if(listener == null){ listener = new MyLoactionListener(); } } } return listener; } private class MyLoactionListener implements LocationListener{ /** * 當手機位置發生改變的時候 調用的方法 */ public void onLocationChanged(Location location) { String latitude ="latitude "+ location.getLatitude(); //獲取緯度 String longtitude = "longtitude "+ location.getLongitude(); //獲取精度 //最後一次獲取到的位置信息 存放到sharedpreference裡面 SharedPreferences sp = context.getSharedPreferences("config", Context.MODE_PRIVATE); Editor editor = sp.edit(); editor.putString("location", latitude+" - "+ longtitude); editor.commit(); } /** * 某一個設備的狀態發生改變的時候 調用 * 可用->不可用 * 不可用->可用 * status 當前狀態 * extras 額外消息 */ public void onStatusChanged(String provider, int status, Bundle extras) { } /** * 某個設備被打開 */ public void onProviderEnabled(String provider) { } /**某個設備被禁用 * */ public void onProviderDisabled(String provider) { } } /**\ * * @param manager 位置管理服務 * @return 最好的位置提供者 */ private String getProvider(LocationManager manager){ //設置查詢條件 Criteria criteria = new Criteria(); //定位精准度 criteria.setAccuracy(Criteria.ACCURACY_FINE); //對海拔是否敏感 criteria.setAltitudeRequired(false); //對手機耗電性能要求(獲取頻率) criteria.setPowerRequirement(Criteria.POWER_MEDIUM); //對速度變化是否敏感 criteria.setSpeedRequired(true); //是否運行產生開銷(費用) criteria.setCostAllowed(true); //如果置為ture只會返回當前打開的gps設備 //如果置為false如果設備關閉也會返回 return manager.getBestProvider(criteria, true); } }
先占個位置,過會兒來翻譯,:p DEMO下載地址:http://download.csdn.net/detail/sweetvvck/7728735 Unlike
Android平台有三種網絡接口可以使用,他們分別是:java.net.*(標准Java接口)、Org.apache接口和Android.net.*(Android網絡接
Bamboy的自定義Toast,(以下稱作“BToast”) 特點在於使用簡單, 並且自帶兩種樣式: 1)普通的文字樣式; 2)帶圖標樣式。 其中圖標有√和×兩種圖標。B
在Android系統中的應用程序,與Java的應用程序相同,都是靠消息驅動,簡單的說就是:有一個消息隊列,我們可以不斷的向這個消息隊列中添加消息,並從中取出消息,處理消息