我寫了下面的代碼,但它不工作。有誰能夠幫助我?我只想被動地接收GPS狀態變化,而不是主動詢問。節約能源是最重要的。當GPS狀態發生變化時,如何接收系統廣播?
沒有消息輸出。
package com.sharelbs.lbs.service;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class GPStStatusReceiver extends BroadcastReceiver {
public static final String GPS_ENABLED_CHANGE_ACTION = "android.location.GPS_ENABLED_CHANGE";
@Override
public void onReceive(Context context, Intent intent) {
Log.d("---------log--------","GPS Status onReceive");
if(intent.getAction().equals(GPS_ENABLED_CHANGE_ACTION)){
Log.d("---------log--------","GPS Status Changed");
startMyProgram();
}
}
}
這裏是我的Manifest.xml:
<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<receiver android:name=".service.GPStStatusReceiver">
<intent-filter>
<action android:name="android.location.GPS_ENABLED_CHANGE" />
</intent-filter>
</receiver>
我的路徑是正確的。 android:name =「。service.GPStStatusReceiver」。它不起作用。 – tristan 2012-07-10 11:16:34
@tristan我更新了我的答案。 – Sam 2012-07-10 17:06:55
非常感謝你!!!!!你是我的英雄! – tristan 2012-07-11 09:33:10