删除广播接收器android内的接近警报

时间:2013-04-01 05:41:26

标签: android geofencing proximitysensor

您好我正在开发小型Android应用程序,其中我正在使用接近警报。所以一切都很好。现在,一旦输入事件触发我想做什么我想删除该警报。怎么做?我可以在广播接收器或其他地方做吗? 我的代码看起来像。

// in abc class
PendingIntent proximityIntent = PendingIntent.getBroadcast(
                    context, 0, intent,
                    PendingIntent.FLAG_CANCEL_CURRENT);

        locationManager.addProximityAlert(
                latitude, 
                longitude, 
                POINT_RADIUS, 
                PROX_ALERT_EXPIRATION,
                proximityIntent                );

// this is broadcast receiver 
public void onReceive(Context context, Intent intent) {

        String key = LocationManager.KEY_PROXIMITY_ENTERING;

        Boolean entering = intent.getBooleanExtra(key, false);

        if (entering) 
        {
            // here I want to stop this alert... ANy solution how to stop this          
            }
        else
        {
        } 
 }

怎么做?需要帮忙。谢谢。

2 个答案:

答案 0 :(得分:0)

使用LocationManager。 removeProximityAlert(的PendingIntent)。只需将传递给addProximityAlert的意图传递给它。如果您现在没有保存,则必须将其保存到活动/服务中的变量。

答案 1 :(得分:0)

根据我的经验,待定意图有不同的标志:

PendingIntent proximityIntent = PendingIntent
                                            .getBroadcast(
                                                    NotificationService.this,
                                                    0,
                                                    intent,
                                                    PendingIntent.FLAG_ONE_SHOT);

当看到,丢弃或使用通知时,我得到了这个代码:

((NotificationManager) getSystemService(NOTIFICATION_SERVICE))
                    .cancel(NOTIFICATION_ID);

其中代码中的通知ID为0。 第一个选项是停止警报,其次是从通知菜单中将其关闭。