8

我已經開始使用this tutorial實施Google Location API。谷歌位置API:請求位置更新與待定的意圖?

我已經設法讓它在我的應用程序中工作得很好,它以正確的間隔更新我的位置等。現在我正在處理設備處於睡眠模式時如何更新我的位置。按照documentation,這種方法是要走的路:

public void requestLocationUpdates (LocationRequest request, PendingIntent callbackIntent); 

我的問題是,我該如何設置這個的PendingIntent,以及如何處理呢?我見過如何處理其他類型的意圖的教程,但我不知道如何將其應用於此。

回答

4

您可以註冊Broardcast Reciever或活動通過未決intent.Sample例登記boardcast reciever:

String proximitys = "ACTION"; 
    IntentFilter filter = new IntentFilter(proximitys); 
    registerReceiver(mybroadcast, filter); 
    Intent intent = new Intent(proximitys); 
    PendingIntent proximityIntent = PendingIntent.getBroadcast(this, 0, 
      intent, PendingIntent.FLAG_CANCEL_CURRENT); 
    locationManager.requestLocationUpdates(provider, mintime, mindistance, 
      proximityIntent); 

你Broardcast Reciever:

public class ProximityIntentReceiver extends BroadcastReceiver { 

    @SuppressWarnings("deprecation") 
    @Override 
    public void onReceive(Context arg0, Intent intent) { 
      //action to be performed 
    } 
+0

謝謝您的快速答覆!但是,我對代碼有一些疑問。什麼是「mybroadcast」,你在哪裏申報?而且我不使用LocationManager,而是使用LocationClient,這個代碼是否可以工作? – HigiPha

+0

對不起,我忘了提及mybroadcast是你想聽我從來沒有在位置客戶端工作過的BroadcastReceiver,但如果能夠通過等待意圖它應該工作:) –

+0

我試過了,它更新了位置LocationListener:它在屏幕亮起時工作正常,但是當我將其置於睡眠模式或進入主屏幕並啓動其他應用程序時,它不會更新位置,不幸=/ – HigiPha