请告诉我在哪里放置代码。
我正在创建一个应用
如下面的应用截图中,你可以看到两个输入框,带有LAT& LONG&名称值:
我有以下代码来获取位置:
public class MainActivity extends Activity implements LocationListener {
EditText lat;
EditText lng;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/********** get Gps location service LocationManager object ***********/
LocationManager locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
/* CAL METHOD requestLocationUpdates */
// Parameters :
// First(provider) : the name of the provider with which to register
// Second(minTime) : the minimum time interval for notifications,
// in milliseconds. This field is only used as a hint
// to conserve power, and actual time between location
// updates may be greater or lesser than this value.
// Third(minDistance) : the minimum distance interval for notifications, in meters
// Fourth(listener) : a {#link LocationListener} whose onLocationChanged(Location)
// method will be called for each location update
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
3000, // 3 sec
10, this);
/********* After registration onLocationChanged method ********/
/********* called periodically after each 3 sec ***********/
}
/************* Called after each 3 sec **********/
@Override
public void onLocationChanged(Location location) {
lat = (EditText)findViewById(R.id.lat);
lng = (EditText)findViewById(R.id.lng);
lat.setText(""+location.getLatitude());
lng.setText(""+location.getLongitude());
String str = "Latitude: "+location.getLatitude()+"Longitude: "+location.getLongitude();
Toast.makeText(getBaseContext(), str, Toast.LENGTH_LONG).show();
}
@Override
public void onProviderDisabled(String provider) {
/******** Called when User off Gps *********/
Toast.makeText(getBaseContext(), "GPS is OFF, Turn it on", Toast.LENGTH_LONG).show();
}
@Override
public void onProviderEnabled(String provider) {
/******** Called when User on Gps *********/
Toast.makeText(getBaseContext(), "GPS ON ", Toast.LENGTH_LONG).show();
Toast.makeText(getBaseContext(), "Waiting for location..... ", Toast.LENGTH_LONG).show();
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
这是获取位置并填写LAT&的代码。当GPS得到修复时,输入框的值很长。
现在, 我需要 POST 代码将所有数据放入我的PHP页面。
答案 0 :(得分:3)
如果它对你有所帮助。您需要正确的异步任务才能运行以下代码。我希望你知道在网络清单中启用权限。 即:
<uses-permission android:name="android.permission.INTERNET" />
HttpResponse YourMethod(String data,String url){
// Create a new HttpClient and Post Header
HttpClient httpClient= new DefaultHttpClient();
HttpResponse response = null;
HttpConnectionParams.setSoTimeout(httpClient.getParams(), 60000);
HttpPost httpPost = new HttpPost(url);
StringEntity se = new StringEntity(data,"UTF-8");
se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE,"text/html"));
httpPost.setEntity(se);
response = httpClient.execute(httpPost);
}
现在数据是您需要发送lat long数据的字符串
还有另一种方法可以将数据发送到您的服务器
public HttpResponse YourMethod(String lat,String lon,Strig url) {
HttpResponse response =null;
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
nameValuePairs.add(new BasicNameValuePair(<lat key from php>, lat));
nameValuePairs.add(new BasicNameValuePair(<lat key from php>, lon));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
} catch (Exception e) {
}
finally{
return response
}
}