2017-05-31 234 views
1

我是android編程新手,我有一個任務是創建一個獨立的android小部件(app小部件),它將一些數據發送到PHP服務器。我需要找到一種從widget類獲取當前設備位置的方法。該widget類稱爲Alarm,它擴展了AppWidgetProvider,它應該在沒有Activity的情況下啓動。如何從android應用程序小部件獲取GPS位置?

我發現很多例子解釋瞭如何使用MainActivity中的LocationManager和LocationListener獲取GPS位置,但這不是我需要的,我需要它沒有活動,只有小部件。

我會感激任何想法。 在此先感謝。

+0

您可能需要創建一個後臺服務來獲取您的位置,然後在定義的時間段內將其發送到您的PHP服務器。 –

回答

0

我有一個任務,使獨立的Android小部件(應用小部件),它發送一些數據到PHP服務器。我需要找到一種從widget類獲取當前設備位置的方法。

應用程序小部件無法「發送一些數據」到服務器,而應用程序小部件無法「獲取當前設備位置」。一個應用部件—以AppWidgetProvider —的形式存在一個毫秒左右,足夠長的時間來發布主屏幕UI部分的更新。 就是這樣。從onUpdate()返回後,您的整個過程可能會在幾毫秒內終止。

創建Service(例如,JobService在Android 5.0+)的是:

  • 寄存器將位置更新
  • 當接收到位置更新,將數據發送到服務器
  • 如果合適(因爲我們不知道應用小部件的實際UI是什麼),使用AppWidgetManager來更新應用小部件的UI
  • 本身停止

何時以及如何安排服務完成其工作取決於您(JobSchedulerJobService將是一個不錯的選擇)。

+0

謝謝,我會盡力去那樣。 –