我正在爲動態創建的覆蓋創建接近警報,但我遇到了一個問題,即當用戶在半徑範圍內移動時,廣播接收器不會觸發。接近警報接收器不會觸發
private void registerIntents() {
for(int i = 0; i < points.size(); i++) {
double intentLat, intentLon;
intentLat = (int)(points.get(i).getLat() * 1E6);
intentLon = (int)(points.get(i).getLon() * 1E6);
setProximityAlert(intentLat, intentLon, i+1,i);
}
}
private void setProximityAlert(double lat, double lon, final long eventID, int requestCode)
{
// 100 meter radius
float radius = 100f;
// Expiration is 10 Minutes (10mins * 60secs * 1000milliSecs)
long expiration = 600000;
LocationManager locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
int uniqueID = requestCode;
String intentAction = PROXIMITY_INTENT_ACTION + uniqueID;
//Intent intent = new Intent(PROXIMITY_INTENT_ACTION);
//intent.putExtra(ProximityAlertReceiver.EVENT_ID_INTENT_EXTRA, eventID);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(), uniqueID, new Intent(intentAction), PendingIntent.FLAG_CANCEL_CURRENT);
mIntentFilter = new IntentFilter(intentAction);
locManager.addProximityAlert(lat, lon, radius, expiration, pendingIntent);
}
這是創建接近警報的代碼,以下代碼用於註冊廣播接收器。我在創建方法中使用它。
this.registerIntents();
registerReceiver(new ProximityAlertReceiver(), mIntentFilter);
我真的很感謝任何幫助,因爲我一直在努力工作了幾天沒有成功。
這些是我在清單文件中的權限。
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
您有使用廣播意圖而不是定向意圖的原因嗎?您是否已在清單中聲明適當的權限以接收位置數據?你確定位置數據是否正在生成? – jsmith 2012-02-15 21:55:23
我不確定廣播意圖與定向意圖是什麼意思。我對Android非常陌生,並且發現了幾個使用此代碼的教程,所以我認爲這是實現它的方法。 – MillyMonster 2012-02-16 11:55:08