|
|
|
android application เก็บค่าความเร็ว KmH getSpeed ลงดาต้าเบส ทุก 5วิ |
|
|
|
|
|
|
|
เก็บค่าความเร็ว KmH getSpeed ลงดาต้าเบส ทุก 5วิ แต่พอลงดาต้าเบสมันเป็นค่า 0
Code (Java)
package com.delivery.user.deliveryman;
/**
* Created by User on 10/4/2016.
*/
import android.app.Service;
import android.content.Context;
import android.content.Intent;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.os.IBinder;
public class GPSTracker extends Service implements LocationListener{
private final Context mContext;
// GPS status
boolean isGPSEnabled = false;
// network status
boolean isNetworkEnabled = false;
boolean canGetLocation = false;
Location location;
double latitude;
double longitude;
float speed;
float Myspeed;
private static final long MIN_DISTANCE_CHANGE_FOR_UPDATES = 10; // 10 meters
private static final long MIN_TIME_BW_UPDATES = 1000 * 5 * 1; // 5 seconds.
protected LocationManager locationManager;
public GPSTracker(Context context) {
this.mContext = context;
getLocation();
}
public Location getLocation() {
try {
locationManager = (LocationManager) mContext
.getSystemService(LOCATION_SERVICE);
// get GPS status
isGPSEnabled = locationManager
.isProviderEnabled(LocationManager.GPS_PROVIDER);
// get network status
isNetworkEnabled = locationManager
.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (!isGPSEnabled && !isNetworkEnabled) {
// ถ้า network ปิดอยู่
} else {
this.canGetLocation = true;
if (isNetworkEnabled) {
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
if (isGPSEnabled) {
if (location == null) {
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MIN_TIME_BW_UPDATES,
MIN_DISTANCE_CHANGE_FOR_UPDATES, this);
if (locationManager != null) {
location = locationManager
.getLastKnownLocation(LocationManager.GPS_PROVIDER);
if (location != null) {
latitude = location.getLatitude();
longitude = location.getLongitude();
}
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return location;
}
public double getLatitude(){
if(location != null){
}
return latitude;
}
public double getLongitude(){
if(location != null){
}
return longitude;
}
public float getSpeed() {
if(location != null){
}
return speed;
}
public boolean canGetLocation() {
return this.canGetLocation;
}
@Override
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
latitude = location.getLatitude();
longitude = location.getLongitude();
//get Speed KmH
speed = location.getSpeed();
Myspeed = (float) (speed*3.6);
}
@Override
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
}
@Override
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
Code (Java)
package com.delivery.user.deliveryman;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AlertDialog;
import android.view.View;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Timer;
import java.util.TimerTask;
public class HeadMainActivity extends Activity {
ConnectionClass connectionClass;
GPSTracker gps;
Timer timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_head_main);
connectionClass = new ConnectionClass();
logout.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent gotoLogout = new Intent(HeadMainActivity.this, SigninActivity.class);
startActivity(gotoLogout);
finish();
}
});
gps = new GPSTracker(HeadMainActivity.this);
if(gps.canGetLocation()){
timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
double lat = gps.getLatitude();
double lng = gps.getLongitude();
float speed = gps.getSpeed();
float Myspeed = gps.getSpeed();
try {
Connection con = connectionClass.CONN();
String query = "INSERT INTO dbo.Tracking (Latitude, Longitude, Date, SpeedOverGround, SpeedKmH ) VALUES ('" + lat + "','" + lng + "', CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, '" + speed + "', '" + Myspeed + "' )";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
while (rs.next()) {
}
} catch (Exception e) {
e.printStackTrace();
}
}
}, 0, 5000);
}else{
}
}
}
Tag : Mobile, Android, Mobile
|
ประวัติการแก้ไข 2016-10-14 11:40:26 2016-10-14 12:23:08
|
|
|
|
|
Date :
2016-10-13 17:56:11 |
By :
aummyasia |
View :
1150 |
Reply :
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รบกวนเปลี่ยน tag ครอบเป็น java ครับ อ่านแล้วมึน เป็นคนชอบสีสัน 5555
|
|
|
|
|
Date :
2016-10-14 07:43:56 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code
String query = "
INSERT INTO dbo.Tracking (
Latitude, --> 1
Longitude, --> 2
Date, -->3
SpeedOverGround, -->4
SpeedKmH -->5
) VALUES (
'" + lat + "', -->1
'" + lng + "', --> 2
CURRENT_TIMESTAMP, --> 3
CURRENT_TIMESTAMP, --> เกินมา
CURRENT_TIMESTAMP, --> เกินมา
'" + speed + "', --> 4
'" + Myspeed + "' -->5
)";
|
|
|
|
|
Date :
2016-10-14 17:08:56 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ไวยกรณ์มันผิด ซึ่งน่าจะเกิด error เพราะ field กับ value มี element ต่างกัน
ตัดที่เกินมาออก ก็น่าจะได้ แต่ถ้าเซฟ เข้า database ได้แต่ค่าที่ได้เป็น 0 ก็คงไม่ใช่โค๊ดที่เอามาลงให้ดูแน่ๆครับ
น่าจะเป็นโค๊ดอื่นหรือเปล่า
|
|
|
|
|
Date :
2016-10-14 18:18:33 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ถ้าจะถามว่าโค๊ดถูกไหม บอกได้แค่ว่า ไวยกรณ์ถูกครับ
แต่ไวยกรณ์ถูกใช่ไว่าโค๊ดจะถูก แต่มันเป็นด่านแรก ถ้าผิดคือมันก็ทำงานไม่ได้ครับ
ส่วนคำว่าถูก ต้องลองรันออกมาว่าได้ค่าตามต้องการไหม ถ้าใช่ก็ถือว่าถูก
ถ้าไม่ใช่ ก็ต้องมาเช็ค error debug ไปที่ละส่วนว่า error อะไรหรือ result ที่ได้มามันผิดตรงไหน
อย่างโค๊ดอันแรก statement sql มันผิดไวยกรณ์ของ sql มันต้องไม่สามารถ insert อะไรได้เลย
เพราะมันผิดไวยกรณ์แต่แรกแล้ว เนื่องจาก element ของ field และ values ไม่เท่ากัน
แต่ที่บอกว่า insert ลง database แล้วได้ค่า 0 สำหรับผมแล้วต้องบอกว่าเป็นไปไม่ได้
ก็ต้องมาถามว่า ค่า 0 ที่ได้มันเป็นค่าของ field ใน record ใหม่ที่ insert แน่หรือเปล่า
|
|
|
|
|
Date :
2016-10-14 23:21:13 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 00
|