도착 목적지가 다른 두게의 좌표가 있습니다.
각각 목적지에 도착했을때 각각의 도착지에서 서로다른 이벤트를 발생시키려 합니다.
private void register(int id, double latitude, double longitude, float radius, long expiration) {
Intent proximityIntent = new Intent(intentKey);
proximityIntent.putExtra("id", id);
proximityIntent.putExtra("latitude", latitude);
proximityIntent.putExtra("longitude", longitude);
PendingIntent intent = PendingIntent.getBroadcast(this, id, proximityIntent, PendingIntent.FLAG_CANCEL_CURRENT);
mLocationManager.addProximityAlert(latitude, longitude, radius, expiration, intent);
mPendingIntentList.add(intent);
}
register(1001, 36.34841,127.454013,30, -1);
register(1002,36.348825,127.450775,30, -1);//두개의 도착지점등록
mIntentReceiver = new CoffeeIntentReceiver(intentKey);
registerReceiver(mIntentReceiver, mIntentReceiver.getFilter());
private class CoffeeIntentReceiver extends BroadcastReceiver {
private String mExpectedAction;
private Intent mLastReceivedIntent;
public CoffeeIntentReceiver(String expectedAction) {
mExpectedAction = expectedAction;
mLastReceivedIntent = null;
}
public IntentFilter getFilter() {
IntentFilter filter = new IntentFilter(mExpectedAction);
return filter;
}
public void onReceive(Context context, Intent intent) {
if (intent != null) {
mLastReceivedIntent = intent;
//이부분에서 각각의 도착지점마다 다른 이벤트를 발생하려합니다.
한쪽에서는 startRecodng();실행
다른한곳에서는 stopRecoding();실행
/* int id = intent.getIntExtra("id", 0);
double latitude = intent.getDoubleExtra("latitude", 0.0D);
double longitude = intent.getDoubleExtra("longitude", 0.0D);*/
}
}
public Intent getLastReceivedIntent() {
return mLastReceivedIntent;
}
public void clearReceivedIntents() {
mLastReceivedIntent = null;
}
}
브로드캐스트리시버를 각각 만들어도 보았는데도 역시나..두개가 같은 이벤트만 실행됩니다.. 이럴경우에는 어떻게 해야될지 감이 안잡힙니다.