ถามการสร้าง Services ส่งค่าไป Server เป็นระยะๆ ครับ
พึ่งหัดเขียนเลยอยากสอบถามหน่อยครับ
ทำโปรเจ็คจบอยู่ครับ
ทำเกี่ยวกับการใช้ Android เป็น Navigator และเก็บข้อมูลการเดินทางด้วย และเมื่อโดนขโมยหรืออกนอกเส้นทาง สามารถดับเครื่องยนต์ได้ โดยผ่านทาง เว็บ ครับ
ตอนนี้ทำการส่งค่า GPS ไปยัง php และ mysql ได้แล้ว แต่เป็นการส่งแบบคลิก “ปุ่ม”
และก็ทำการเช็คค่า Status จาก mysql บน Server ได้แล้ว แต่เป็นการคลิก “ปุ่ม” เพื่อเช็คเหมือนกัน
เลยอยากให้มันทำงาน อัตโนมัติ แบบ Services ส่งค่าหรือเช็คค่าตามเวลาที่กำหนด เช่น 5 นาทีส่ง 1 ครั้ง หรือจะส่ง อัตโนมัติ ปกติก็ได้ครับ ขอแค่ไม่คลิกปุ่มก็พอ
ขอ code ตัวอย่างสักนิดก็ดีครับ
รบกวนด้วยนะครับ
ขอบคุณมากครับ
เงียบ….
สามารถทำได้ครับ
ใช้ locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, i, j, locationListener);
i = เวลาที่จะใช้อัพเดต เช่นผ่านไปกี่นาที เช่น ให้ update ทุกๆ 1 นาที ก็ใส่ตัวเลขไป
j = ระยะทางที่ใช้อัพเดต เช่นผ่านไปเมตร เช่น ให้ update ทุกๆ 5 เมตร ก็ใส่ตัวเลขไป
ขอบคุณมากครับ
แล้ว มี แบบ ทำงานเอง แบบไม่ต้องใช้ ปุ่ม ไหมครับ
หน้าตาโปรแกรมครับ
(ตอนถ่าย ss ไม่ได้เปิด gps)
ตอนนี้คลิกปุ่ม Send GPS ก็จะส่งพิกัดไป Server ได้แล้ว
เลยจะเอาปุ่มออก แล้วให้มันส่งค่าไปเองตามเวลาที่กำหนดไว้อะครับ ผมงงตรงนี้ยังไม่ได้
ถ้างั้น ก็เอาการทำงานช่วง send GPS ไปไว้ตอนโหลดครั้งแรกเลยคับ พอโปรแกรมเริ่มทำงาน ก็ให้ GPS เริ่มทำงานไปด้วย
ไม่รุว่าผม อธิบายแล้วผิด ไม่ตรงกับที่คุณต้องการหรือเปล่านะครับ
ผิดถูกยังไงก็ว่ากันไปเรื่อยๆ
ผิดรึว่ายังไงไม่เป็นไรครับ ขอแค่มีคนปรึกษาครับ
หลักการคล้ายๆกับ GPS Tracking ของรถยนต์ ที่มันจะส่งพิกัดตลอดเมื่อมีการเคลื่อนที่ หรือ ส่งตามเวลาที่กำหนด
แต่คราวนี้เอามาทำบน android แค่เริ่มเปิด app มันก็ทำการส่งพิกัดไป server เรื่อยๆ ตามเวลาที่กำหนดว่าจะส่ง 5นาที ส่ง 1 ครั้ง
งั้น ลองดูเลยครับ
ส่ง auto ได้ละครับ
ใช้ service + timer
ขอบคุณที่ช่วยครับ
มารีวิวให้ดูบ้างครับ อยากรู้แนว ^^
public class myService extends Service {
protected static final int REFRESH = 0;
private Timer timer;
private TimerTask refresher;
boolean paused = false;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
paused = false;
timer = new Timer();
refresher = new TimerTask() {
public void run() {
handler.sendEmptyMessage(REFRESH);
};
};
// 1 sec = 1000 (milisec)
timer.scheduleAtFixedRate(refresher, 0, 5000);
}
@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
paused = true;
}
private Handler handler = new Handler() {
public void handleMessage(Message msg) {
switch (msg.what) {
case REFRESH:
// Your Code or functions();
break;
default:
break;
}
}
};
int NOTE_DURATION = 400;
private void functions(){
if(!paused){
//Your Code
try{
Thread.sleep(NOTE_DURATION);
}catch(InterruptedException e){
e.printStackTrace();
}
}
}
ไปเจอที่ stackoverflow.com มีตัวอย่างโค้ดเยอะดีครับ
ลองเทสให้มันส่งไปเลื่อยๆยังครับ แบบว่าให้โทรศัพท์อยู่ในโหมดที่ไม่ได้ใช้งาน แล้วก็อย่าเสียบสาย USB ไว้ด้วยนะ ผมเคยทำอยู่ ใช้ timer มันจะส่งไม่ตรงกับเราตั้งเวลาไว้ต้องทิ้งไว้พักใหญ่หน่อยนะ เหมือนมันเข้าโหมด sleep เป็นแบบผมไหมขอแชร์ปัญหาหน่อย
สวัสดีครับ ผมกำลังทำโปรเจคแบบพี่ NuttTaro เลยครับ แต่ผมไม่ค่อยรู้เรื่องมากเท่าไหร่เพราะไม่ได้เรียนโดยตรง อยากรบกวนพี่ให้คำแนะนำหน่อยครับ FB patz.rameng , tuey.007@hotmail.com หรือขอติดต่อพี่หน่อยได้มั้ยครับ ^_^
ใช้ IOIO + วงจร รีเลย์ ครับ