-2

近接アラートの削除に問題があり、テストのために ProximityAlert を追加してすぐに削除しようとしました。私はこの機能を持っています:

public void addproximity(View v) {
    SharedPreferences sharedPref = getSharedPreferences("proximityService", Context.MODE_PRIVATE);

    int unique_id = sharedPref.getInt("PENDING_ID", 0);
    unique_id = unique_id+1;

    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putInt("PENDING_ID", unique_id);
    editor.commit();
    Intent intentNew = new Intent(PROX_ALERT_INTENT);

    LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);

    double latitude = 43.9297615;
    double longitude = 10.2035046;
    PendingIntent pi = PendingIntent.getBroadcast(getApplicationContext(), unique_id, intentNew, 0);
    lm.addProximityAlert(latitude, longitude, 200, -1, pi);
    if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
        return;
    }
    IntentFilter filter = new IntentFilter(PROX_ALERT_INTENT);
    mHandleMessageReceiver = new ProximityAlertReceiver();
    registerReceiver(mHandleMessageReceiver, filter);


    lm.removeProximityAlert(pi);

}

しかし、私は偽のGPSでテストしましたが、近接性は削除されず、ブロードキャストはまだイベントを受信して​​います. 私が間違っているのは何ですか?

4

1 に答える 1

1

メソッドでaddProximityAlert()は、有効期限の値として -1 を渡しています。これは、geofrence が期限切れにならないことを意味します ( Geofence.NEVER_EXPIRE)。これが geofrence が削除されない理由です。このフラグを変更して、再試行してください。

于 2016-09-06T10:59:30.007 に答える