我在android中有一個應用程序,我想通過一個url(like=..mydata.php?lat=76867&long=87979
)將android手機的緯度和經度發送到網絡PHP服務器。我有PHP代碼保存數據庫中的數據,如果此網址被擊中。從Android發送數據到PHP服務器
我沒有得到的是如何通過我的android手機發送經緯度到PHP服務器。
我在android中有一個應用程序,我想通過一個url(like=..mydata.php?lat=76867&long=87979
)將android手機的緯度和經度發送到網絡PHP服務器。我有PHP代碼保存數據庫中的數據,如果此網址被擊中。從Android發送數據到PHP服務器
我沒有得到的是如何通過我的android手機發送經緯度到PHP服務器。
清單需要包含
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET" />`
更新: 網絡連接在UI線程不再允許。然後你需要發送一個包含在AsyncTask<>
中的HTTP get,它將被你的PHP後端解析和解釋。 一個例子是在http://developer.android.com/training/basics/network-ops/connecting.html
建立在@DarkXphenomenon答案,確保你有正確的權限。
// to retrieve location
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
// to retrieve location
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
// to send data
<uses-permission android:name="android.permission.INTERNET"/>
然後在您的java類中,您可以使用此代碼將數據發送到php文件。確保捕捉到任何異常。
String and = "&";
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://my site.com/gpsdata.php?imei="+imei+and+"lat="+lat+and+"lng="+lng+and+"alt="+alt+and+"spd="+speed);
try {
httpclient.execute(httppost);
Log.d(TAG, "Data sent!");
} catch (ClientProtocolException e) {
Toast.makeText(this,
"Client protokol exception ", Toast.LENGTH_LONG).show();
} catch (IOException e) {
Toast.makeText(this,
"IO exception " + e.getMessage(), Toast.LENGTH_LONG)
.show();
}
你還需要確保你的位置的變量,如經緯度是字符串,否則你會得到一些意外的錯誤。通常情況下,位置變量將是雙精度或浮點數。向雙轉換爲字符串,excecute
String Longitude = Double.toString(doubleToConvertToString);
而且同樣是浮動的字符串
String Longitude = Float.toString(doubleToConvertToString);
我已經有緯度和經度,但在第二個答案「在單獨的線程上運行」是非常重要的??並在哪裏寫我的網址? – 2012-07-20 08:59:54
查看編輯答案。如果您不希望HTTP請求和響應阻止主線程,則需要在其他線程上運行它。 – 2012-07-20 09:03:52
對不起,但我沒有得到我的數據庫中的值。 – 2012-07-20 09:54:04