|
|
|
Android - GPS + Location Manager (อยากทราบ การหา เวลา m/s ที่ GPS อ่านได้ กับ องค์ศาที่เปลี่ยนแปลงไป) |
|
|
|
|
|
|
|
ขยายความ จากโค้ดด้านล่าง เป็นการอ่านค่า GPS ที่จับได้แล้วสแดงออกทาง TextView
อยากทราบถึงเวลาที่ GPS อ่านค่าได้ เก็บค่าเป็น Array แสดงออกทาง TextView
Code (Android-Java)
import android.location.Criteria;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.provider.Settings;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.widget.TextView;
import android.widget.Toast;
public class Main extends Activity {
LocationManager lm;
TextView textLatitude, textLongitude, text_Kg_h;
Double temp;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textLatitude = (TextView) findViewById(R.id.textLatitude);
textLongitude = (TextView) findViewById(R.id.textLongitude);
text_Kg_h = (TextView) findViewById(R.id.text_kg_h);
lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
}
public void onResume() {
super.onResume();
setup();
}
public void onStart() {
super.onStart();
boolean gpsEnabled, networkEnabled;
gpsEnabled = lm.isProviderEnabled(LocationManager.GPS_PROVIDER);
if (!gpsEnabled) {
networkEnabled = lm.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!networkEnabled) {
Intent intent = new Intent(
Settings.ACTION_LOCATION_SOURCE_SETTINGS);
startActivity(intent);
}
}
}
public void onStop() {
super.onStop();
lm.removeUpdates(listener);
}
public void setup() {
lm.removeUpdates(listener);
String latitude = "ยังไม่ได้รับค่า latitude";
String longitude = "ยังไม่ได้รับค่า longitude";
Location networkLocation = requestUpdatesFromProvider(
LocationManager.NETWORK_PROVIDER, "ไม่สามารถเชื่อมต่อ Network ได้");
if (networkLocation != null) {
latitude = String.format("%.7f", networkLocation.getLatitude());
longitude = String.format("%.7f", networkLocation.getLongitude());
}
Location gpsLocation = requestUpdatesFromProvider(
LocationManager.GPS_PROVIDER, "GPS ยังไม่ถูกเปิดใช้งาน นะค่ะ");
if (gpsLocation != null) {
latitude = String.format("%.7f", gpsLocation.getLatitude());
longitude = String.format("%.7f", gpsLocation.getLongitude());
}
textLatitude.setText(latitude);
textLongitude.setText(longitude + "\n" + temp );
}
public Location requestUpdatesFromProvider(final String provider,
String error) {
Location location = null;
if (lm.isProviderEnabled(provider)) {
lm.requestLocationUpdates(provider, 1000, 10, listener);
location = lm.getLastKnownLocation(provider);
} else {
Toast.makeText(this, error, Toast.LENGTH_LONG).show();
}
return location;
}
public final LocationListener listener = new LocationListener() {
public void onLocationChanged(Location location) {
textLatitude.setText(String.format("%.7f", location.getLatitude()));
textLongitude.setText(String.format("%.7f", location.getLongitude()));
//
temp = location.getSpeed() ; // อ่านค่า m/s เก็บไว้ใน temp ผมเข้าใจถูกหรือเปล่าครับ
//
}
Tag : Mobile, Android, Tablets, Mobile
|
ประวัติการแก้ไข 2013-08-24 15:45:35 2013-08-24 21:32:39 2013-08-24 21:33:51
|
|
|
|
|
Date :
2013-08-24 15:40:54 |
By :
auttpon |
View :
1673 |
Reply :
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้การเก็บลงใน ArrayList น่ะครับ มันสามารถที่จะเพิ่มได้เรื่อย ๆ ครับ
Code (Java)
ArrayList<String> myArrList = new ArrayList<String>();
myArrList.add("Belgium");
myArrList.add("France");
myArrList.add("Italy");
myArrList.add("Germany");
แสดงผล
Code (Java)
for (String temp : myArrList) {
//temp;
}
|
|
|
|
|
Date :
2013-08-27 06:27:54 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|