日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

基站定位(Google API)

發(fā)布時間:2023/12/18 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基站定位(Google API) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

在Android操作系統(tǒng)下,基站定位其實很簡單,先說一下實現(xiàn)流程:

調(diào)用SDK中的API(TelephonyManager)獲得MCC、MNC、LAC、CID等信息,然后通過google的API獲得所在位置的經(jīng)緯度,最后再通過google map的API獲得實際的地理位置。(google真牛!)

有同學會問:MNC、MCC、LAC、CID都是些什么東西?google又怎么通過這些東西就獲得經(jīng)緯度了呢?

我們一起來學習一下:

MCC,Mobile Country Code,移動國家代碼(中國的為460);

MNC,Mobile Network Code,移動網(wǎng)絡號碼(中國移動為00,中國聯(lián)通為01);

LAC,Location Area Code,位置區(qū)域碼;

CID,Cell Identity,基站編號,是個16位的數(shù)據(jù)(范圍是0到65535)。

了解了這幾個名詞的意思,相信有些朋友已經(jīng)知道后面的事了:google存儲了這些信息,直接查詢就能得到經(jīng)緯度了。(至于google怎么得到移動、聯(lián)通的基站信息,這就不得而知了,反正google免費提供接口,直接調(diào)用就是)

下面開始動手。

一、設置界面

我們在上一節(jié)的程序的基礎上進行開發(fā),在DemoActivity的界面上實現(xiàn)這個功能。(沒有代碼的同學可點擊這里下載,感謝yuejianjun同學的建議,以后我會在每一節(jié)的最后把例子打包提供下載)

首先我們將DemoActivity使用的布局修改一下:

第1行為TextView,顯示提示文字;第2行為一個Button,觸發(fā)事件;第3行、第4行分別顯示基站信息和地理位置(現(xiàn)在為空,看不到)。

layout/main.xml文件內(nèi)容如下:

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 <?xml?version="1.0"?encoding="utf-8"?> <LinearLayout?xmlns:android="http://schemas.android.com/apk/res/android" ????android:layout_width="fill_parent" ????android:layout_height="fill_parent" ????android:orientation="vertical"?> ?? ????<TextView ????????android:layout_width="fill_parent" ????????android:layout_height="wrap_content" ????????android:text="Please click the button below to get your location"?/> ?? ????<Button ????????android:id="@+id/button1" ????????android:layout_width="wrap_content" ????????android:layout_height="wrap_content" ????????android:text="Click Me"?/> ?? ????<TextView ????????android:id="@+id/cellText" ????????android:layout_width="wrap_content" ????????android:layout_height="wrap_content" ????????android:text=""?/> ?? ????<TextView ????????android:id="@+id/lacationText" ????????android:layout_width="wrap_content" ????????android:layout_height="wrap_content" ????????android:text=""?/> ?? </LinearLayout>

接下來我們打開DemoActivity.java編寫代碼。

二、為按鈕綁定事件

我們在Activity創(chuàng)建時綁定事件,將以下代碼添加到setContentView(R.layout.main);后:

?
1 2 3 4 5 6 7 8 9 10 /** 為按鈕綁定事件 */ Button btnGetLocation = (Button)findViewById(R.id.button1); btnGetLocation.setOnClickListener(new?OnClickListener() { ????@Override ????public?void?onClick(View arg0) { ????????// TODO Auto-generated method stub ????????onBtnClick(); ????} });

同時還需要在頭部import相關組件:

?
1 2 3 import?android.view.View; import?android.widget.Button; import?android.view.View.OnClickListener;

我們來分析一下這段代碼:

首先我們通過findViewById(R.id.button1)找到按鈕這個對象,前面加(Button)表示顯示的轉(zhuǎn)換為Button對象;

然后設置按鈕點擊事件的監(jiān)聽器,參數(shù)為OnClickListener對象,再重載這個類的onClick方法,調(diào)用onBtnClick方法(這個方法得由我們自己去寫,他在點擊按鈕時被調(diào)用)。

好了,調(diào)用方法寫好了,我們來寫實現(xiàn)(調(diào)用后需要做什么事)。動手編碼之前先在腦中整理好思路,養(yǎng)成好習慣。

我們需要在DemoActivty類中添加如下私有方法:

  • 我們需要剛剛提到的onBtnClick回調(diào)方法,被調(diào)用時實現(xiàn)取得基站信息、獲取經(jīng)緯度、獲取地理位置、顯示的功能。但是很顯然,全部揉到一個方法里面并不是個好主意,我們將它分割為幾個方法;
  • 添加獲取基站信息的方法getCellInfo,返回基站信息;
  • 添加獲取經(jīng)緯度的方法getItude,傳入基站信息,返回經(jīng)緯度;
  • 添加獲取地理位置的方法getLocation,傳入經(jīng)緯度,返回地理位置;
  • 添加顯示結果的方法showResult,傳入得到的信息在界面上顯示出來。
  • 好了,先將方法添上,完整代碼如下:

    ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 package?com.android.demo; ?? import?android.R.bool; import?android.R.integer; import?android.app.Activity; import?android.os.Bundle; import?android.view.View; import?android.widget.Button; import?android.view.View.OnClickListener; ?? public?class?DemoActivity?extends?Activity { ????/** Called when the activity is first created. */ ????@Override ????public?void?onCreate(Bundle savedInstanceState) { ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.main); ?????????? ????????/** 為按鈕綁定事件 */ ????????Button btnGetLocation = (Button)findViewById(R.id.button1); ????????btnGetLocation.setOnClickListener(new?OnClickListener() { ????????????@Override ????????????public?void?onClick(View arg0) { ????????????????// TODO Auto-generated method stub ????????????????onBtnClick(); ????????????} ????????}); ????} ?????? ????/** 基站信息結構體 */ ????public?class?SCell{ ????????public?int?MCC; ????????public?int?MNC; ????????public?int?LAC; ????????public?int?CID; ????} ?????? ????/** 經(jīng)緯度信息結構體 */ ????public?class?SItude{ ????????public?String latitude; ????????public?String longitude; ????} ?????? ????/** 按鈕點擊回調(diào)函數(shù) */ ????private?void?onBtnClick(){ ?????????? ????} ?????? ????/** 獲取基站信息 */ ????private?SCell getCellInfo(){ ?? ????} ?????? ????/** 獲取經(jīng)緯度 */ ????private?SItude getItude(SCell cell){ ?????????? ????} ?????? ????/** 獲取地理位置 */ ????private?String getLocation(SItude itude){ ?????????? ????} ?????? ????/** 顯示結果 */ ????private?void?showResult(SCell cell, String location){ ?????????? ????} }

    現(xiàn)在在onBtnClick方法中編碼,依次調(diào)用后面幾個方法,代碼如下:

    ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 /** 按鈕點擊回調(diào)函數(shù) */ private?void?onBtnClick(){ ????/** 彈出一個等待狀態(tài)的框 */ ????ProgressDialog mProgressDialog =?new?ProgressDialog(this); ????mProgressDialog.setMessage("正在獲取中..."); ????mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); ????mProgressDialog.show(); ?????? ????try?{ ????????/** 獲取基站數(shù)據(jù) */ ????????SCell cell = getCellInfo(); ?????????? ????????/** 根據(jù)基站數(shù)據(jù)獲取經(jīng)緯度 */ ????????SItude itude = getItude(cell); ?????????? ????????/** 獲取地理位置 */ ????????String location = getLocation(itude); ?????????? ????????/** 顯示結果 */ ????????showResult(cell, location); ?????????? ????????/** 關閉對話框 */ ????????mProgressDialog.dismiss(); ????}catch?(Exception e) { ????????/** 關閉對話框 */ ????????mProgressDialog.dismiss(); ????????/** 顯示錯誤 */ ????????TextView cellText = (TextView)findViewById(R.id.cellText); ????????cellText.setText(e.getMessage()); ????} }

    按鈕相關的工作就完成了,接下來編寫獲取基站信息的方法。

    三、獲取基站信息

    獲取基站信息我們需要調(diào)用SDK提供的API中的TelephonyManager,需要在文件頭部引入:

    ?
    1 2 import?android.telephony.TelephonyManager; import?android.telephony.gsm.GsmCellLocation;

    完整代碼為:

    ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 /** ?* 獲取基站信息 ?*? ?* @throws Exception ?*/ private?SCell getCellInfo()?throws?Exception { ????SCell cell =?new?SCell(); ????/** 調(diào)用API獲取基站信息 */ ????TelephonyManager mTelNet = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); ????GsmCellLocation location = (GsmCellLocation) mTelNet.getCellLocation(); ????if?(location ==?null) ????????throw?new?Exception("獲取基站信息失敗"); ????String operator = mTelNet.getNetworkOperator(); ????int?mcc = Integer.parseInt(operator.substring(0,?3)); ????int?mnc = Integer.parseInt(operator.substring(3)); ????int?cid = location.getCid(); ????int?lac = location.getLac(); ????/** 將獲得的數(shù)據(jù)放到結構體中 */ ????cell.MCC = mcc; ????cell.MNC = mnc; ????cell.LAC = lac; ????cell.CID = cid; ????return?cell; }

    如果獲得的位置信息為null將拋出錯誤,不再繼續(xù)執(zhí)行。最后將獲取的基站信息封裝為結構體返回。

    四、獲取經(jīng)緯度

    在這一步,我們需要采用HTTP調(diào)用google的API以獲取基站所在的經(jīng)緯度。

    Android作為一款互聯(lián)網(wǎng)手機,聯(lián)網(wǎng)的功能必不可少。Android提供了多個接口供我們使用,這里我們使用DefaultHttpClient。

    完整的方法代碼如下:

    ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 /** ?* 獲取經(jīng)緯度 ?*? ?* @throws Exception ?*/ private?SItude getItude(SCell cell)?throws?Exception { ????SItude itude =?new?SItude(); ????/** 采用Android默認的HttpClient */ ????HttpClient client =?new?DefaultHttpClient(); ????/** 采用POST方法 */ ????HttpPost post =?new?HttpPost("http://www.google.com/loc/json"); ????try?{ ????????/** 構造POST的JSON數(shù)據(jù) */ ????????JSONObject holder =?new?JSONObject(); ????????holder.put("version",?"1.1.0"); ????????holder.put("host",?"maps.google.com"); ????????holder.put("address_language",?"zh_CN"); ????????holder.put("request_address",?true); ????????holder.put("radio_type",?"gsm"); ????????holder.put("carrier",?"HTC"); ????????JSONObject tower =?new?JSONObject(); ????????tower.put("mobile_country_code", cell.MCC); ????????tower.put("mobile_network_code", cell.MNC); ????????tower.put("cell_id", cell.CID); ????????tower.put("location_area_code", cell.LAC); ????????JSONArray towerarray =?new?JSONArray(); ????????towerarray.put(tower); ????????holder.put("cell_towers", towerarray); ????????StringEntity query =?new?StringEntity(holder.toString()); ????????post.setEntity(query); ????????/** 發(fā)出POST數(shù)據(jù)并獲取返回數(shù)據(jù) */ ????????HttpResponse response = client.execute(post); ????????HttpEntity entity = response.getEntity(); ????????BufferedReader buffReader =?new?BufferedReader(newInputStreamReader(entity.getContent())); ????????StringBuffer strBuff =?new?StringBuffer(); ????????String result =?null; ????????while?((result = buffReader.readLine()) !=?null) { ????????????strBuff.append(result); ????????} ????????/** 解析返回的JSON數(shù)據(jù)獲得經(jīng)緯度 */ ????????JSONObject json =?new?JSONObject(strBuff.toString()); ????????JSONObject subjosn =?new?JSONObject(json.getString("location")); ????????itude.latitude = subjosn.getString("latitude"); ????????itude.longitude = subjosn.getString("longitude"); ?????????? ????????Log.i("Itude", itude.latitude + itude.longitude); ?????????? ????}?catch?(Exception e) { ????????Log.e(e.getMessage(), e.toString()); ????????throw?new?Exception("獲取經(jīng)緯度出現(xiàn)錯誤:"+e.getMessage()); ????}?finally{ ????????post.abort(); ????????client =?null; ????} ?????? ????return?itude; }

    代筆中關鍵的地方都作了注釋,同學們還有不理解的舉手哈。

    在這里采用POST方法將JSON數(shù)據(jù)發(fā)送到googleAPI,google返回JSON數(shù)據(jù),我們得到數(shù)據(jù)后解析,得到經(jīng)緯度信息。

    關于google 基站信息API的官方說明>>請到這里查看。

    五、獲取物理位置

    得到經(jīng)緯度后,我們將之轉(zhuǎn)換為物理地址。

    我們?nèi)匀皇褂?span style="background-color:rgb(204,204,204)">DefaultHttpClient來調(diào)用google地圖的API,獲得物理信息,不過在這里我們使用GET方法。

    完整的方法代碼如下:

    ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 /** ?* 獲取地理位置 ?*? ?* @throws Exception ?*/ private?String getLocation(SItude itude)?throws?Exception { ????String resultString =?""; ????/** 這里采用get方法,直接將參數(shù)加到URL上 */ ????String urlString = String.format("http://maps.google.cn/maps/geo?key=abcdefg&q=%s,%s", itude.latitude, itude.longitude); ????Log.i("URL", urlString); ????/** 新建HttpClient */ ????HttpClient client =?new?DefaultHttpClient(); ????/** 采用GET方法 */ ????HttpGet get =?new?HttpGet(urlString); ????try?{ ????????/** 發(fā)起GET請求并獲得返回數(shù)據(jù) */ ????????HttpResponse response = client.execute(get); ????????HttpEntity entity = response.getEntity(); ????????BufferedReader buffReader =?new?BufferedReader(newInputStreamReader(entity.getContent())); ????????StringBuffer strBuff =?new?StringBuffer(); ????????String result =?null; ????????while?((result = buffReader.readLine()) !=?null) { ????????????strBuff.append(result); ????????} ????????resultString = strBuff.toString(); ????????/** 解析JSON數(shù)據(jù),獲得物理地址 */ ????????if?(resultString !=?null?&& resultString.length() >?0) { ????????????JSONObject jsonobject =?new?JSONObject(resultString); ????????????JSONArray jsonArray =?newJSONArray(jsonobject.get("Placemark").toString()); ????????????resultString =?""; ????????????for?(int?i =?0; i < jsonArray.length(); i++) { ????????????????resultString = jsonArray.getJSONObject(i).getString("address"); ????????????} ????????} ????}?catch?(Exception e) { ????????throw?new?Exception("獲取物理位置出現(xiàn)錯誤:"?+ e.getMessage()); ????}?finally?{ ????????get.abort(); ????????client =?null; ????} ????return?resultString; }

    GET方法就比POST方法簡單多了,得到的數(shù)據(jù)同樣為JSON格式,解析一下得到物理地址。

    六、顯示結果

    好了,我們已經(jīng)得到我們想要的信息了,我們把它顯示出來,方法代碼如下:

    ?
    1 2 3 4 5 6 7 8 9 /** 顯示結果 */ private?void?showResult(SCell cell, String location) { ????TextView cellText = (TextView) findViewById(R.id.cellText); ????cellText.setText(String.format("基站信息:mcc:%d, mnc:%d, lac:%d, cid:%d", ????????????cell.MCC, cell.MNC, cell.LAC, cell.CID)); ????TextView locationText = (TextView) findViewById(R.id.lacationText); ????locationText.setText("物理位置:"?+ location); }

    七、運行程序

    我們的編碼工作已經(jīng)完成了。在上面的代碼中有些地方需要的引入代碼沒有提到,下面把完整的代碼貼出來:

    ?
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 package?com.android.demo; ?? import?java.io.BufferedReader; import?java.io.InputStreamReader; ?? import?org.apache.http.HttpEntity; import?org.apache.http.HttpResponse; import?org.apache.http.client.HttpClient; import?org.apache.http.client.methods.HttpGet; import?org.apache.http.client.methods.HttpPost; import?org.apache.http.entity.StringEntity; import?org.apache.http.impl.client.DefaultHttpClient; ?? import?org.json.JSONArray; import?org.json.JSONObject; ?? import?android.app.Activity; import?android.app.ProgressDialog; import?android.content.Context; import?android.os.Bundle; import?android.telephony.TelephonyManager; import?android.telephony.gsm.GsmCellLocation; import?android.util.Log; import?android.view.View; import?android.widget.Button; import?android.widget.TextView; import?android.view.View.OnClickListener; ?? public?class?DemoActivity?extends?Activity { ????/** Called when the activity is first created. */ ????@Override ????public?void?onCreate(Bundle savedInstanceState) { ????????super.onCreate(savedInstanceState); ????????setContentView(R.layout.main); ?? ????????/** 為按鈕綁定事件 */ ????????Button btnGetLocation = (Button) findViewById(R.id.button1); ????????btnGetLocation.setOnClickListener(new?OnClickListener() { ????????????@Override ????????????public?void?onClick(View arg0) { ????????????????// TODO Auto-generated method stub ????????????????onBtnClick(); ????????????} ????????}); ????} ?????? ????/** 基站信息結構體 */ ????public?class?SCell{ ????????public?int?MCC; ????????public?int?MNC; ????????public?int?LAC; ????????public?int?CID; ????} ?????? ????/** 經(jīng)緯度信息結構體 */ ????public?class?SItude{ ????????public?String latitude; ????????public?String longitude; ????} ?????? ????/** 按鈕點擊回調(diào)函數(shù) */ ????private?void?onBtnClick() { ????????/** 彈出一個等待狀態(tài)的框 */ ????????ProgressDialog mProgressDialog =?new?ProgressDialog(this); ????????mProgressDialog.setMessage("正在獲取中..."); ????????mProgressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); ????????mProgressDialog.show(); ?? ????????try?{ ????????????/** 獲取基站數(shù)據(jù) */ ????????????SCell cell = getCellInfo(); ?? ????????????/** 根據(jù)基站數(shù)據(jù)獲取經(jīng)緯度 */ ????????????SItude itude = getItude(cell); ?? ????????????/** 獲取地理位置 */ ????????????String location = getLocation(itude); ?? ????????????/** 顯示結果 */ ????????????showResult(cell, location); ?? ????????????/** 關閉對話框 */ ????????????mProgressDialog.dismiss(); ????????}?catch?(Exception e) { ????????????/** 關閉對話框 */ ????????????mProgressDialog.dismiss(); ????????????/** 顯示錯誤 */ ????????????TextView cellText = (TextView) findViewById(R.id.cellText); ????????????cellText.setText(e.getMessage()); ????????????Log.e("Error", e.getMessage()); ????????} ????} ?????? ????/** ?????* 獲取基站信息 ?????*? ?????* @throws Exception ?????*/ ????private?SCell getCellInfo()?throws?Exception { ????????SCell cell =?new?SCell(); ?? ????????/** 調(diào)用API獲取基站信息 */ ????????TelephonyManager mTelNet = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); ????????GsmCellLocation location = (GsmCellLocation) mTelNet.getCellLocation(); ????????if?(location ==?null) ????????????throw?new?Exception("獲取基站信息失敗"); ?? ????????String operator = mTelNet.getNetworkOperator(); ????????int?mcc = Integer.parseInt(operator.substring(0,?3)); ????????int?mnc = Integer.parseInt(operator.substring(3)); ????????int?cid = location.getCid(); ????????int?lac = location.getLac(); ?? ????????/** 將獲得的數(shù)據(jù)放到結構體中 */ ????????cell.MCC = mcc; ????????cell.MNC = mnc; ????????cell.LAC = lac; ????????cell.CID = cid; ?? ????????return?cell; ????} ?????? ????/** ?????* 獲取經(jīng)緯度 ?????*? ?????* @throws Exception ?????*/ ????private?SItude getItude(SCell cell)?throws?Exception { ????????SItude itude =?new?SItude(); ?? ????????/** 采用Android默認的HttpClient */ ????????HttpClient client =?new?DefaultHttpClient(); ????????/** 采用POST方法 */ ????????HttpPost post =?new?HttpPost("http://www.google.com/loc/json"); ????????try?{ ????????????/** 構造POST的JSON數(shù)據(jù) */ ????????????JSONObject holder =?new?JSONObject(); ????????????holder.put("version",?"1.1.0"); ????????????holder.put("host",?"maps.google.com"); ????????????holder.put("address_language",?"zh_CN"); ????????????holder.put("request_address",?true); ????????????holder.put("radio_type",?"gsm"); ????????????holder.put("carrier",?"HTC"); ?? ????????????JSONObject tower =?new?JSONObject(); ????????????tower.put("mobile_country_code", cell.MCC); ????????????tower.put("mobile_network_code", cell.MNC); ????????????tower.put("cell_id", cell.CID); ????????????tower.put("location_area_code", cell.LAC); ?? ????????????JSONArray towerarray =?new?JSONArray(); ????????????towerarray.put(tower); ????????????holder.put("cell_towers", towerarray); ?? ????????????StringEntity query =?new?StringEntity(holder.toString()); ????????????post.setEntity(query); ?? ????????????/** 發(fā)出POST數(shù)據(jù)并獲取返回數(shù)據(jù) */ ????????????HttpResponse response = client.execute(post); ????????????HttpEntity entity = response.getEntity(); ????????????BufferedReader buffReader =?new?BufferedReader(newInputStreamReader(entity.getContent())); ????????????StringBuffer strBuff =?new?StringBuffer(); ????????????String result =?null; ????????????while?((result = buffReader.readLine()) !=?null) { ????????????????strBuff.append(result); ????????????} ?? ????????????/** 解析返回的JSON數(shù)據(jù)獲得經(jīng)緯度 */ ????????????JSONObject json =?new?JSONObject(strBuff.toString()); ????????????JSONObject subjosn =?new?JSONObject(json.getString("location")); ?? ????????????itude.latitude = subjosn.getString("latitude"); ????????????itude.longitude = subjosn.getString("longitude"); ?????????????? ????????????Log.i("Itude", itude.latitude + itude.longitude); ?????????????? ????????}?catch?(Exception e) { ????????????Log.e(e.getMessage(), e.toString()); ????????????throw?new?Exception("獲取經(jīng)緯度出現(xiàn)錯誤:"+e.getMessage()); ????????}?finally{ ????????????post.abort(); ????????????client =?null; ????????} ?????????? ????????return?itude; ????} ?????? ????/** ?????* 獲取地理位置 ?????*? ?????* @throws Exception ?????*/ ????private?String getLocation(SItude itude)?throws?Exception { ????????String resultString =?""; ?? ????????/** 這里采用get方法,直接將參數(shù)加到URL上 */ ????????String urlString = String.format("http://maps.google.cn/maps/geo?key=abcdefg&q=%s,%s", itude.latitude, itude.longitude); ????????Log.i("URL", urlString); ?? ????????/** 新建HttpClient */ ????????HttpClient client =?new?DefaultHttpClient(); ????????/** 采用GET方法 */ ????????HttpGet get =?new?HttpGet(urlString); ????????try?{ ????????????/** 發(fā)起GET請求并獲得返回數(shù)據(jù) */ ????????????HttpResponse response = client.execute(get); ????????????HttpEntity entity = response.getEntity(); ????????????BufferedReader buffReader =?new?BufferedReader(newInputStreamReader(entity.getContent())); ????????????StringBuffer strBuff =?new?StringBuffer(); ????????????String result =?null; ????????????while?((result = buffReader.readLine()) !=?null) { ????????????????strBuff.append(result); ????????????} ????????????resultString = strBuff.toString(); ?? ????????????/** 解析JSON數(shù)據(jù),獲得物理地址 */ ????????????if?(resultString !=?null?&& resultString.length() >?0) { ????????????????JSONObject jsonobject =?new?JSONObject(resultString); ????????????????JSONArray jsonArray =?newJSONArray(jsonobject.get("Placemark").toString()); ????????????????resultString =?""; ????????????????for?(int?i =?0; i < jsonArray.length(); i++) { ????????????????????resultString = jsonArray.getJSONObject(i).getString("address"); ????????????????} ????????????} ????????}?catch?(Exception e) { ????????????throw?new?Exception("獲取物理位置出現(xiàn)錯誤:"?+ e.getMessage()); ????????}?finally?{ ????????????get.abort(); ????????????client =?null; ????????} ?? ????????return?resultString; ????} ?????? ????/** 顯示結果 */ ????private?void?showResult(SCell cell, String location) { ????????TextView cellText = (TextView) findViewById(R.id.cellText); ????????cellText.setText(String.format("基站信息:mcc:%d, mnc:%d, lac:%d, cid:%d", ????????????????cell.MCC, cell.MNC, cell.LAC, cell.CID)); ?? ????????TextView locationText = (TextView) findViewById(R.id.lacationText); ????????locationText.setText("物理位置:"?+ location); ????} }

    我們連上手機在手機上運行程序看看。

    不出意外的話程序運行起來了,自動跳轉(zhuǎn)到了主界面。點擊“Click Me”,出錯了!

    詳細的錯誤信息為:Neither user 10078 nor current process has android.permission.ACCESS_COARSE_LOCATION.

    原來是沒有權限,經(jīng)過前面的學習,我們知道Android在應用的安全上下了一番功夫,要用一些特殊功能必須先報告,安裝應用的時候列給用戶看,必須要得到用戶的允許。這里我們用了獲取基站信息的功能,涉及到用戶的隱私了,所以我們必須申明一下。

    打開AndroidManifest.xml配置文件,在里面添加相應的配置信息:

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

    我們繼續(xù)把網(wǎng)絡連接的權限申明也加上:

    ?
    1 <uses-permission?android:name="android.permission.INTERNET"></uses-permission>

    再編譯運行看看(點擊“Click Me”后程序會卡住,等待一段時間才有反應,取決于網(wǎng)絡情況):

    成功啦!

    可能有的同學還是出現(xiàn)錯誤,沒有成功:

    █?提示“www.google.com…”什么的錯誤

    請確認你的手機能訪問互聯(lián)網(wǎng),調(diào)用google的API是必須聯(lián)網(wǎng)的。

    █?提示獲取不到基站信息

    你確定你是在手機上測試的嗎?模擬器可不行哦?;蛘吣愕氖謾C使用的CMDA網(wǎng)絡?這個例子只支持GSM網(wǎng)絡…

    █?獲取不到經(jīng)緯度

    很有可能你中獎了,你所在的基站還沒納入google的數(shù)據(jù)庫…(話說我之前也遇到過,怎么查就是查不出經(jīng)緯度來,返回數(shù)據(jù)為空)

    █?獲取到的地理地址不正確

    這個可能程序出錯了,可能google出錯了?

    其實google map API返回的數(shù)據(jù)中還包含了很多其他信息,我們可以用來開發(fā)一些更有趣的功能,如制作我們專屬的地圖軟件、足跡記錄軟件等,充分發(fā)揮你的創(chuàng)造力:)

    八、總結

    這個程序基本實現(xiàn)了基站定位功能,但還有很多問題,如:點擊了按鈕后界面會卡住(訪問網(wǎng)絡時阻塞了進程)、未對異常進一步處理、不兼容CMDA網(wǎng)絡等。

    另外這個程序的精度也不夠,獲得的位置實際上是基站的物理位置,與人所在的位置還有一定差距。在城市里面,一般采用密集型的小功率基站,精度一般在幾百米范圍內(nèi),而在郊區(qū)常為大功率基站,密度很小,精度一般在幾千米以上。

    想要取得更高的精度需要通過一些其他的算法來實現(xiàn),如果大家有興趣的話我們可以一起來研究一下,再專門寫篇筆記。

    可見寫一段程序和做一個實際的產(chǎn)品是有很大差別的。

    九、程序代碼

    這一節(jié)完整程序的請點擊這里下載。

    結尾

    這一節(jié)基本實現(xiàn)了最簡單的基站定位,只是作為學習的例子,遠遠達不到產(chǎn)品的要求,請大家見諒。

    我們進一步熟悉了JAVA編碼,之前沒怎么接觸JAVA看起來有點吃力的同學建議找點JAVA基礎的書來看看。

    話說我這段代碼也是寫得亂七八糟,JAVA沒系統(tǒng)學習過,不知道JAVA編程的習慣,命名規(guī)則等,大家見笑了。

    相對前面幾節(jié)來說這一節(jié)沒那么詳細了,我也很困惑:詳細點呢進度很慢,進度提上去了又怕不夠詳細,看看大家的意見,請留言哈。

    下一節(jié)我們回歸理論知識,一起深入學習Android的Activity組件。

    ?

    原文鏈接:http://www.cnblogs.com/rayee/archive/2012/02/02/2336101.html

    總結

    以上是生活随笔為你收集整理的基站定位(Google API)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    国产精品二区三区 | 久久久久国产免费免费 | 99热这里只有精品免费 | 成人动漫精品一区二区 | 国产精品久久久久婷婷二区次 | 深夜免费网站 | 丁香花在线观看视频在线 | 免费国产黄线在线观看视频 | 国产又黄又硬又爽 | 国产精彩视频一区 | 日韩特黄一级欧美毛片特黄 | 久久九九久久九九 | 91av视频观看 | 色九九在线 | 国产一区二区三区免费在线观看 | 亚洲人人精品 | 久草在线一免费新视频 | 久久国产美女视频 | 久久免费一级片 | 99精品免费视频 | 久久国产乱 | 日本黄色免费在线 | 亚洲激情国产精品 | 韩国av电影在线观看 | 91丝袜美腿| 久热色超碰 | 亚洲日本激情 | 久一网站 | 在线观看免费高清视频大全追剧 | 精品久久久免费视频 | 欧美xxxxx在线视频 | 特级毛片aaa | 国产精彩在线视频 | 最新中文字幕视频 | 四虎国产精品永久在线国在线 | 999热视频| 精品久久久久亚洲 | 亚洲黄色免费 | 国产小视频福利在线 | 日日麻批40分钟视频免费观看 | 午夜久久电影网 | 五月婷婷丁香在线观看 | 日本女人逼 | 天天色天天射天天综合网 | 夜夜高潮夜夜爽国产伦精品 | 嫩草91影院| 国际精品久久久 | 在线欧美a | 又湿又紧又大又爽a视频国产 | 久久在现视频 | 国产精品日韩久久久久 | 国产精品电影一区二区 | 国产视频一区在线播放 | 麻豆久久久 | 午夜精品一区二区三区视频免费看 | 久久精精品视频 | 综合亚洲视频 | 69av免费视频 | 97免费在线视频 | 亚洲精品在线观看网站 | 日韩久久一区 | 欧美有色 | 亚洲少妇xxxx | 久久欧美精品 | 97手机电影网 | 欧美一性一交一乱 | 狠狠色狠狠色综合日日92 | 天天爱av导航 | av不卡中文 | 一区二区三区四区免费视频 | 精品色999| 伊人久久av| 日韩三级久久 | 在线观看视频你懂得 | 欧美在线视频第一页 | 精品 一区 在线 | 久久精品久久精品久久精品 | 亚洲国产一区在线观看 | 国产人成在线视频 | 久久久久激情电影 | 亚洲婷婷网 | 97av.com | 黄色三级网站在线观看 | 欧美精品久久久久久久亚洲调教 | 亚洲精品久久久蜜臀下载官网 | 欧美一区在线观看视频 | 视频国产 | 91在线永久 | 亚洲 欧洲av| 91亚洲夫妻 | 91豆花在线观看 | 午夜精品一区二区国产 | 久草视频在线新免费 | 国产91精品一区二区绿帽 | 人人超碰免费 | 色婷婷伊人 | 国产一级免费播放 | av综合网址 | 中文视频一区二区 | 国产精品成人av电影 | 亚洲精品免费观看视频 | 在线观看成人小视频 | 亚洲一级黄色大片 | 亚洲 欧洲 国产 日本 综合 | www.亚洲精品视频 | 精品麻豆 | 美女黄网站视频免费 | 久久99久国产精品黄毛片入口 | 亚洲福利精品 | 免费av成人在线 | 91九色视频在线观看 | 久久成人在线 | 操操操com | 亚洲国产成人久久综合 | 福利电影一区二区 | 在线免费观看黄色大片 | 国产精品国产三级国产 | 久九视频 | 香蕉网在线播放 | 欧美在线18 | 成人一级片免费看 | 日本三级大片 | 97在线观看免费观看高清 | 国产网站在线免费观看 | 91福利在线观看 | 欧美日韩在线精品一区二区 | 丁香午夜婷婷 | 国产精品色 | 日日爽天天操 | 久久丁香网 | 九九99| 日韩国产欧美在线视频 | 日韩精选在线观看 | 欧美在线观看视频免费 | 日韩欧美v | av大全在线免费观看 | 日韩h在线观看 | 欧美成人性战久久 | 国产美女黄网站免费 | 国产精品毛片久久久久久 | 91天堂影院 | 99精品欧美一区二区蜜桃免费 | 亚洲精品资源在线观看 | 久久久久久久久久毛片 | 综合国产视频 | 日日夜精品 | 中文字幕在线播放日韩 | 免费看片网址 | 成人国产精品入口 | 激情片av| 日韩欧美视频在线免费观看 | 久久久久国产一区二区三区四区 | 麻豆成人在线观看 | 玖玖视频免费在线 | 97香蕉久久国产在线观看 | 激情六月婷婷久久 | 五月天com | 欧美成人aa | 一区二区三区在线视频111 | 日日日操操 | 在线电影 一区 | 在线观看黄网站 | 天天射网 | 午夜精品成人一区二区三区 | 欧美乱码精品一区二区 | 青春草国产视频 | 日本视频不卡 | 蜜桃视频日本 | 国产成人免费网站 | 丁香资源影视免费观看 | 亚洲粉嫩av | 免费合欢视频成人app | 欧美性粗大hdvideo | 中文字幕一区在线 | 在线看日韩 | 色网站在线观看 | 欧美天堂久久 | 久久免费福利视频 | 最新日韩电影 | 99久热在线精品视频观看 | 99久久精品视频免费 | 999毛片| 天天爽网站 | 天天色 天天 | 91av在线免费观看 | 999视频在线播放 | 麻豆久久精品 | av 一区二区三区 | 日日夜操| 69视频在线播放 | 国产精品久久久久久久久婷婷 | 日本中文字幕高清 | 色激情在线 | 人人躁| 中文字幕成人在线 | 久精品视频免费观看2 | 久久国产福利 | 粉嫩一二三区 | 91麻豆精品国产自产在线游戏 | 成 人 黄 色视频免费播放 | 国产精品久久久久久久久久久不卡 | 久久优 | 中文字幕色婷婷在线视频 | 亚洲另类视频在线 | 国产精品18毛片一区二区 | 久久另类视频 | 午夜在线观看影院 | 视频在线观看亚洲 | 国产主播大尺度精品福利免费 | 免费精品久久久 | 毛片无卡免费无播放器 | 激情丁香久久 | 久久高清精品 | 欧美成人在线免费 | 91精品国产综合久久婷婷香蕉 | 毛片激情永久免费 | 久久草在线视频国产 | 伊人五月婷 | 黄色av电影免费观看 | 久久免费视频5 | 五月婷婷一区 | 国产精品va在线 | 91中文字幕网 | 国产在线毛片 | 中文电影网 | 国产美女黄网站免费 | 久久久久久久久久久久国产精品 | 婷婷伊人五月 | 91中文视频 | 色网站在线看 | 欧美日韩啪啪 | 日韩在线视频观看免费 | 国产一区二区在线免费播放 | 91视频久久 | 国产又粗又猛又爽又黄的视频先 | 精品伦理一区二区三区 | 在线播放亚洲激情 | 91网免费观看 | 特级毛片在线免费观看 | 91精品国产电影 | va视频在线 | 激情网五月婷婷 | 高清av免费一区中文字幕 | 精品视频999 | 在线免费观看视频一区二区三区 | 久久久首页 | 一本一本久久a久久精品综合 | 人人精品久久 | 亚洲综合色站 | 日韩免费一级a毛片在线播放一级 | 亚洲国产中文字幕 | 波多野结衣最新 | 国产一区二区三区在线 | 午夜狠狠干 | 中文在线字幕观看电影 | 蜜桃视频精品 | 亚洲一区二区三区四区精品 | 中文字幕123区 | 91亚洲激情 | 国产一区二区三区高清播放 | 婷婷色网视频在线播放 | av在线精品 | 成人精品视频久久久久 | 日韩精品亚洲专区在线观看 | 黄色免费网站 | 麻豆免费在线播放 | 免费在线成人av | 在线亚洲午夜片av大片 | 婷婷在线网站 | 亚洲成av人片在线观看香蕉 | 色婷婷www | 国产精久久久久久久 | 成人av观看 | 久久久www成人免费精品 | 99久国产 | www亚洲视频| 国产黑丝袜在线 | 亚洲成人在线免费 | 欧美亚洲免费在线一区 | 日韩乱码在线 | 人人爽人人澡人人添人人人人 | 久久大视频 | www.大网伊人 | 亚洲成人av片 | 2019精品手机国产品在线 | 九色91在线 | 午夜国产福利在线观看 | 欧美成人tv | 夜夜操网站 | 亚洲午夜久久久久久久久久久 | 日日操日日 | 91看片在线免费观看 | 99免费看片 | 中文字幕免费中文 | av电影在线观看 | 国产精品乱码久久久久 | av看片在线 | 亚洲 成人 欧美 | 免费精品视频在线 | 偷拍福利视频一区二区三区 | 国产精品乱码久久 | 久久99精品波多结衣一区 | 特级西西444www大胆高清无视频 | 日本字幕网| 97人人网 | 最近免费中文字幕mv在线视频3 | 日韩爱爱片 | 欧美日韩精品区 | 美女网站一区 | 久久99久久99久久 | 一区免费在线 | 国产精品露脸在线 | 久久久久欠精品国产毛片国产毛生 | 亚洲天堂精品 | 欧美一区免费在线观看 | 91桃花视频| 亚洲六月丁香色婷婷综合久久 | 日韩中午字幕 | www.五月天色 | 欧美日韩亚洲国产一区 | 亚洲天天草| 狠狠狠色狠狠色综合 | 亚洲免费精品视频 | 国产精品毛片一区二区在线看 | 国产色婷婷精品综合在线手机播放 | 欧美精品久久久久a | 麻豆一区二区三区视频 | 美女网站视频免费黄 | 视频一区亚洲 | 69xxxx欧美| 亚洲四虎| 九九免费观看全部免费视频 | 国产不卡av在线播放 | 国产一区二区三精品久久久无广告 | 欧亚日韩精品一区二区在线 | 精品一二三四五区 | 久久看视频 | 一区二区在线不卡 | 麻豆视频在线免费看 | www.久久久| 国产中文字幕一区二区三区 | 91精品无人成人www | 精品国产乱码久久久久久1区2匹 | 在线影院 国内精品 | 日韩欧美在线一区 | 亚洲成人麻豆 | 99久久精品久久久久久动态片 | www狠狠操 | 久久1区| 欧美a级在线免费观看 | 三级免费黄色 | 国产日韩精品一区二区三区在线 | 成年人免费av网站 | 超碰人人草人人 | 国产精品原创av片国产免费 | 免费黄色在线网址 | 美女久久视频 | 日韩在线中文字幕 | 在线视频第一页 | 国产精品免费久久久久久 | 国产精品美女久久久久久久网站 | 日b视频在线观看网址 | 久草干 | 超碰97成人 | 免费看的国产视频网站 | 亚洲视频 一区 | 免费在线精品视频 | 日韩大片在线播放 | 久久视频这里有精品 | 亚洲精品字幕在线观看 | 麻豆国产精品va在线观看不卡 | 天天干天天摸天天操 | 91伊人影院 | 久久精品精品电影网 | 中文字幕在线乱 | 很黄很污的视频网站 | 激情综合五月婷婷 | 在线观看黄色av | 国产精品久久久久永久免费看 | 欧美精品日韩 | 婷婷丁香自拍 | 久久激情小视频 | 久久久影院官网 | 天天天干天天射天天天操 | 中文在线√天堂 | 国产日韩精品一区二区在线观看播放 | 午夜视频在线观看欧美 | 九七视频在线观看 | 91免费在线播放 | 日韩久久视频 | 日日干综合| 亚洲视频精选 | 国产成人在线观看免费 | 亚洲精品久久久久久中文传媒 | 免费在线观看污网站 | 天天操天天操天天操天天操天天操天天操 | 国产婷婷在线观看 | 青青网视频 | 精品人人人人 | 国产日韩精品在线观看 | 97超碰精品 | 公与妇乱理三级xxx 在线观看视频在线观看 | 天海翼一区二区三区免费 | 国产一级二级三级在线观看 | 日韩综合精品 | 亚洲电影一区二区 | 国产精久久久久久妇女av | 97视频人人澡人人爽 | 五月开心六月伊人色婷婷 | 国内精品美女在线观看 | 91超国产 | 岛国一区在线 | 日韩欧美精品一区二区三区经典 | 91精品入口 | 伊人官网| adn—256中文在线观看 | 欧洲在线免费视频 | 毛片网在线 | 欧美视频xxx | 麻豆视频在线播放 | 成人小视频在线免费观看 | 精品久久久久久电影 | 欧美在线视频精品 | 精品久久久久久久久久 | 精品91久久久久 | 国产精品黄色 | 中文字幕高清av | 久久这里只精品 | 免费视频一二三区 | 精品视频在线播放 | 欧美一区三区四区 | 国产精品久久久久久久久免费看 | 99久高清在线观看视频99精品热在线观看视频 | 久久免费av电影 | 欧美性免费 | 久久久久久久久久久久av | 521色香蕉网站在线观看 | 热久久视久久精品18亚洲精品 | 国产精品一区二区久久精品 | 午夜在线免费观看视频 | 日韩二区三区在线观看 | 色九九视频 | 国产一卡久久电影永久 | 97人人视频 | 成年人免费av网站 | 国产精品久久久久国产精品日日 | 国产亚洲免费的视频看 | 另类老妇性bbwbbw高清 | 91超碰免费在线 | 国产涩图 | 国产中文在线字幕 | 国产小视频在线免费观看视频 | 国产精品欧美一区二区三区不卡 | av天天干 | 天天做天天爱天天爽综合网 | 丁香花在线观看视频在线 | 激情五月亚洲 | 99视频免费播放 | 国产手机av在线 | 91在线播放视频 | 在线视频你懂得 | 日本精品视频免费 | 中文字幕在线观看完整 | 在线播放第一页 | 99精品视频免费看 | 久章草在线| 久久夜色精品国产欧美一区麻豆 | 激情网在线观看 | 久久国产精品免费一区二区三区 | 日本中文字幕在线视频 | 久久久久久久久久久久久9999 | www.啪啪.com| 国产精品视频地址 | 天天想夜夜操 | 激情婷婷亚洲 | 久久久国产精品一区二区中文 | 欧美精品久久 | 天天干天天天 | 国产中文在线播放 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 中文字幕一区二区在线播放 | 亚洲精品videossex少妇 | 欧美精品九九99久久 | 亚洲视频资源在线 | 久久新 | 亚洲天堂自拍视频 | 91丨九色丨丝袜 | 亚洲精品综合一二三区在线观看 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 日韩欧美一区二区三区视频 | 婷婷色综合色 | 99免费在线播放99久久免费 | 免费福利片 | 808电影免费观看三年 | 国产97碰免费视频 | 中文字幕在线观看完整 | 国产福利av在线 | 亚洲国产精品视频在线观看 | 一区二区av| 99热都是精品 | 日日干天天 | 日韩中文字幕第一页 | 欧美日视频| 西西www4444大胆视频 | 色综合久久综合 | 人人艹视频 | 欧美日韩网址 | 特级西西人体444是什么意思 | 在线91播放 | 欧美在线视频第一页 | 久久久久久亚洲精品 | 九色91福利 | 丝袜美腿在线视频 | 国产精品夜夜夜一区二区三区尤 | 国产福利不卡视频 | 在线观看黄网站 | 伊人色综合久久天天网 | 中文字幕欲求不满 | 成人免费观看在线视频 | 999国内精品永久免费视频 | 西西www4444大胆在线 | 欧美亚洲精品在线观看 | 中文字幕高清视频 | 亚洲最快最全在线视频 | 天天干夜夜想 | 在线亚洲高清视频 | 国产一级免费观看视频 | 国产精品99久久免费黑人 | 久久不射电影院 | av电影免费在线播放 | 一区二区三区在线免费播放 | 欧美另类亚洲 | 天天射天天爽 | 国产成人一区二区三区免费看 | 久久国产经典 | 美女久久久久久久久久 | 久久精品首页 | 国产一二区精品 | 久久视频在线视频 | 在线 成人 | 国产精品高潮呻吟久久av无 | 成人在线播放免费观看 | 三级av片| 99在线精品免费视频九九视 | 欧美 日韩 久久 | www好男人| 久久亚洲国产精品 | 九九精品毛片 | 992tv人人网tv亚洲精品 | 免费网站黄 | 婷婷国产v亚洲v欧美久久 | 欧美精品被 | 欧美二区视频 | 国产 日韩 欧美 中文 在线播放 | 久色婷婷 | 久久国产精品成人免费浪潮 | 看v片| 国产在线观看免费 | 特级毛片在线免费观看 | 99re久久精品国产 | 成人h视频| 免费观看av网站 | 天天搞天天干天天色 | 99热99| 五月婷婷另类国产 | 99久久久精品 | 人人干在线| 天天操天天爽天天干 | 久草在在线视频 | 人人操日日干 | 日韩高清dvd | 欧美一区影院 | 天天干婷婷 | 日韩理论 | 成人一级视频在线观看 | 黄色免费网 | 四虎永久免费 | 伊人春色电影网 | 国产亚洲午夜高清国产拍精品 | 麻豆传媒一区二区 | 亚洲精品美女在线观看 | 日本91在线 | 一级精品视频在线观看宜春院 | 不卡日韩av | 激情视频久久 | 国产视频中文字幕在线观看 | 久久久蜜桃| 亚洲精品视频第一页 | 欧美色图视频一区 | 国产特黄色片 | 97网在线观看 | 99国产一区 | 久草精品免费 | 五月亚洲 | 九九久久成人 | 精品久久免费看 | 天天操天天操天天操天天操天天操天天操 | 久热爱 | www麻豆视频 | 91精品久久久久久久91蜜桃 | 一区二区视频免费在线观看 | 在线免费观看不卡av | 国产精品av电影 | 国产高清成人 | 久久久三级视频 | 国产亚洲视频在线观看 | 欧美a√大片 | 射射射综合网 | 久久精品视频免费观看 | 四虎亚洲精品 | 亚洲精品电影在线 | 日韩大片在线免费观看 | 91精品91| 日韩高清免费电影 | 91精品国产自产老师啪 | 国产欧美在线一区二区三区 | 九九热免费视频在线观看 | 久久99国产精品久久99 | 玖玖在线免费视频 | 午夜在线观看一区 | 精品久久久99 | a级成人毛片 | 玖操| 香蕉视频久久久 | 亚洲一区二区三区精品在线观看 | 九色精品免费永久在线 | 狠狠五月天 | 婷婷丁香狠狠爱 | 久久99国产精品免费网站 | 99久久综合狠狠综合久久 | 人人澡人人爱 | 狠狠干狠狠艹 | 伊人久久在线观看 | 天天操天天操天天操天天操天天操 | 欧美色888 | 美女视频永久黄网站免费观看国产 | 九九视频精品免费 | 狠狠狠狠狠狠狠 | 国产无限资源在线观看 | 亚洲国产精品电影 | a成人v在线 | 一区二精品 | 欧美成人高清 | 欧美日韩国产精品一区二区亚洲 | 国产伦精品一区二区三区… | www.狠狠操.com | 国产成人精品国内自产拍免费看 | 亚洲成av人片在线观看香蕉 | 久久精视频 | 丁香婷婷在线 | 九九九免费视频 | 爱射综合 | 久久在线免费 | 丁香六月在线 | 在线播放视频一区 | 国产精品自产拍在线观看中文 | 免费观看www小视频的软件 | 色视频网站在线观看一=区 a视频免费在线观看 | 成 人 黄 色 视频免费播放 | 人人草在线观看 | 五月婷婷深开心 | 91成人国产 | 国产精品久久久久久久久久免费 | 一级做a爱片性色毛片www | 久久久久免费精品国产小说色大师 | 亚洲人成影院在线 | 五月婷婷狠狠 | 久草在在线视频 | 麻豆传媒在线视频 | 日韩电影在线一区二区 | 免费观看版| 91插插插网站 | 五月天com| 97国产大学生情侣白嫩酒店 | 米奇影视7777| 免费人人干 | 91中文字幕在线播放 | 精品一区二区精品 | 国产一级电影在线 | 亚洲视频 视频在线 | 精品久久久久久久久亚洲 | 91成人网页版 | 日韩一区二区免费在线观看 | 国产精品久久伊人 | 国产精品一区二区三区在线免费观看 | 91精品国产成人观看 | 最新真实国产在线视频 | 九九热在线视频 | 欧美在线a视频 | 日韩一级理论片 | 天天添夜夜操 | 国产精品99免费看 | 久草在线手机视频 | 亚洲女同ⅹxx女同tv | 国产精品免费一区二区 | 国产九色视频在线观看 | 国产免费叼嘿网站免费 | 天天天干夜夜夜操 | 黄色精品网站 | 亚洲精品美女久久久 | 综合久久婷婷 | 精品久久久久一区二区国产 | 性色xxxxhd | 97夜夜澡人人爽人人免费 | 亚洲精品午夜久久久久久久久久久 | 国产香蕉av | 99这里只有久久精品视频 | 久久久在线 | 天天天天综合 | 中文字幕精品一区久久久久 | 国产精品99精品久久免费 | 色爱区综合激月婷婷 | 欧美另类美少妇69xxxx | 99视频国产精品 | 免费观看一级视频 | 高清av影院 | 91精品免费在线观看 | 国产女教师精品久久av | 国产一区二区在线影院 | www.五月天婷婷| 欧美 激情 国产 91 在线 | 99中文字幕 | 天天色影院 | 在线免费中文字幕 | 中文字幕视频三区 | 91精品少妇偷拍99 | 成年人在线观看免费视频 | 国产资源网 | 日韩av男人的天堂 | wwwwwww黄 | 久久99国产综合精品 | 中文字幕在线观看日本 | 国产精品一区专区欧美日韩 | 天天射天天拍 | 中文字幕一区二区三区在线播放 | 国产精品一区二区三区在线免费观看 | 亚洲精品国产精品乱码不99热 | 久久久久久久久久久久久国产精品 | 黄色一集片 | 97超碰影视 | 欧美日韩在线精品一区二区 | 欧美影院久久 | 国产精品五月天 | 成年人app网址 | 国产一级在线 | 色婷婷成人 | 色婷婷综合久久久中文字幕 | 国产亚洲在线视频 | 国产日韩在线一区 | 成人v| 国产视频在线免费观看 | 天堂麻豆| 国产精品久久久久一区二区三区 | 亚洲日b视频 | 激情影音 | 日韩免费观看一区二区三区 | 超碰国产人人 | 最近中文字幕在线 | 日韩视频专区 | 正在播放 久久 | 中文字幕av免费在线观看 | 在线成人一区二区 | 天天天综合网 | 亚洲精品午夜国产va久久成人 | 亚洲自拍自偷 | 99精品观看 | 亚洲色综合 | 在线免费视| 丰满少妇在线观看资源站 | 99精品毛片 | 精品影院一区二区久久久 | 国产精品成人一区二区 | 国产免费高清视频 | 国产成人精品女人久久久 | 国产又粗又猛又黄视频 | 久久久久久久国产精品影院 | 精品在线亚洲视频 | 国产小视频在线观看 | 国产精品成人aaaaa网站 | 日韩欧美综合精品 | 国产69熟| 96精品视频 | 涩涩色亚洲一区 | 成年人免费av | 激情久久久久 | 视频在线观看91 | 成+人+色综合 | 婷婷精品在线 | 碰超在线97人人 | av片在线观看免费 | 国产精品久久久久久久久久久久冷 | 亚州激情视频 | 日韩欧美视频一区二区三区 | 久久 亚洲视频 | 狠狠干激情 | 五月天欧美精品 | 亚洲精品久久视频 | 高潮久久久 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 不卡的av在线播放 | 97在线视| 亚洲成人国产 | 久久免费精彩视频 | 人人爱人人做人人爽 | 色在线免费观看 | 天天艹天天干天天 | 午夜精品av在线 | 国产精品福利在线播放 | 欧美一二三四在线 | www久久久久 | 国产明星视频三级a三级点| 在线免费观看羞羞视频 | 久久99久久99精品免观看软件 | 亚洲一级电影视频 | 久久久久久精 | 狠狠网| 久久爱影视i | 国产精品国产三级国产 | 在线观看免费观看在线91 | 亚洲精品一区中文字幕乱码 | 国产精品久久久久久久婷婷 | 在线a视频免费观看 | 久久这里只有精品视频99 | 蜜桃视频精品 | av线上免费观看 | 欧美成天堂网地址 | 碰超在线| 国产视频手机在线 | 在线免费91 | 国产视频色 | 天天插天天狠天天透 | 久久免费黄色 | 欧美成人影音 | 高清不卡一区二区在线 | 日韩午夜一级片 | 波多野结衣亚洲一区二区 | 日日夜夜精品网站 | 婷婷丁香激情综合 | 在线免费观看国产黄色 | 亚洲最大在线视频 | 天天操天天干天天操天天干 | 欧美日韩亚洲在线观看 | 亚洲一区二区麻豆 | 91中文字幕在线 | 亚洲五月综合 | 久久免费视频这里只有精品 | 久久精品播放 | 337p欧美 | 中文字幕国语官网在线视频 | 嫩草av影院| 欧美一二三专区 | 久久av中文字幕片 | 四虎永久免费网站 | 亚州视频在线 | 久久综合一本 | 精品 激情| 高清一区二区 | 久操视频在线观看 | 国产一区二区高清视频 | 99热99re6国产在线播放 | 一区二区三区久久精品 | 国产亚洲在线观看 | 日韩色高清 | 女人高潮特级毛片 | www.久久com | 中文字幕电影网 | 色婷婷亚洲精品 | 国产精品原创 | 久久久久综合精品福利啪啪 | 国产一二区在线观看 | 深爱激情五月网 | av免费观看网址 | 国产精品一级在线 | 日韩在线高清 | 一级黄色大片在线观看 | 最近乱久中文字幕 | 久久久国产电影 | 精品国产精品国产偷麻豆 | 精品国产乱码久久 | 最新av观看| 日韩av二区| 天天摸天天干天天操天天射 | 久久精品79国产精品 | 欧美一区在线看 | 在线成人短视频 | 婷婷av在线 | 国产一级不卡毛片 | 深夜福利视频在线观看 | 人人插人人射 | 99色网站| 色网站在线免费 | 国产亚洲一区二区在线观看 | 亚洲三区在线 | 一区二区 精品 | 成人全视频免费观看在线看 | 欧美久久久久久久 | 久久黄色小说 | 亚洲精品一区二区精华 | 国内外成人免费在线视频 | 午夜.dj高清免费观看视频 | 91精品国产高清 | 黄免费网站 | 狠狠狠色丁香婷婷综合久久88 | 日韩精品在线免费播放 | 99精品国产在热久久 | 欧美 日韩精品 | 欧美人操人 | 亚洲精品高清视频 | 一区二区视频在线观看免费 | 天天夜夜狠狠操 | 久久久久99精品国产片 | www免费看片com| 久久av福利 | 欧美精品久久久久久久亚洲调教 | 超碰av在线| 久久久精品亚洲 | 国产精品v欧美精品 | 99亚洲精品 | 国产成人综 | 亚洲国产精品小视频 | 久久精品—区二区三区 | 国产原创av在线 | 国产高清视频免费在线观看 | 久99久在线视频 | 99久久er热在这里只有精品66 | 在线免费观看视频一区二区三区 | 精品国产一区二区三区在线 | 国产精品毛片久久久久久久久久99999999 | www好男人| 国产又粗又猛又色又黄网站 | 亚洲一区精品二人人爽久久 | av一区二区在线观看中文字幕 | 日韩免费在线 | 九九九在线 | 在线视频国产区 | 成人性生交大片免费观看网站 | 久久99久久99精品免费看小说 | 在线免费看黄色 | 日本性高潮视频 | 免费看成人av | 日本精a在线观看 | 精品国产乱码久久久久久1区二区 | 超碰免费97 | 久久综合久久88 | 欧美日韩国产综合网 | 在线观看免费版高清版 | 色操插 | 国产一区二区免费在线观看 | 成人免费看视频 | 亚洲国产成人精品在线观看 | 一级α片| 九九在线国产视频 | 久久99在线| 午夜性色| 国产精品九九视频 | 中文日韩在线 | 黄色动态图xx | 天天天操天天天干 | 国内精品二区 | 色视频在线免费观看 | 免费日韩视频 | 96久久欧美麻豆网站 | 中文字幕在线影视资源 | 国产中文字幕视频在线观看 | 午夜精品久久久久久久久久久 | 国产精品99久久免费观看 | 91久久精品日日躁夜夜躁国产 | 一区二区三区久久精品 | 国产精品美女久久久久久久久 | 天天天天综合 | 欧美精品三级在线观看 | 正在播放国产一区二区 | 2019中文字幕第一页 | 国产精品扒开做爽爽的视频 | 亚洲婷婷在线视频 | 99视频在线免费看 | 三级黄色a | 婷婷色综 | 婷婷亚洲综合 | 久久精视频 | 欧美 国产 视频 | 国产这里只有精品 | 国产成本人视频在线观看 | 美女在线国产 | 在线观看aaa | 波多野结衣精品 | 天堂入口网站 | 国产成人精品综合久久久久99 | 婷婷六月在线 | 在线国产日韩 | 天天操天天艹 | 亚洲精品成人免费 | 日韩女同一区二区三区在线观看 | 香蕉视频在线免费看 | 99国产精品久久久久久久久久 | 日本女人的性生活视频 | 免费观看特级毛片 | 91大神一区二区三区 |