2016-02-14 3 views
1

Попытка уведомить пользователя, когда он проходит по этому местоположению, используя оповещение о близости. Я назначил resultIntent Notification_Handler.class, который создает уведомление. Однако, когда пользователь находится рядом с этим местоположением, уведомление не нажато. Как нажать уведомление в этом случае?Как инициализировать уведомление в оповещении о близости

//This is android App 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_map); 
    SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map); 
    mapFragment.getMapAsync(this); 
    // resize map 
    mapFragment = (SupportMapFragment) (getSupportFragmentManager() 
      .findFragmentById(R.id.map)); 
    ViewGroup.LayoutParams params = mapFragment.getView().getLayoutParams(); 
    params.height = 1400; 
    mapFragment.getView().setLayoutParams(params); 
    //Notify if user near a location 
    lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
    Intent resultIntent = new Intent(this, Notification_Handler.class); 
    PendingIntent pendIntent = PendingIntent.getActivity(this, 0,   resultIntent, PendingIntent.FLAG_UPDATE_CURRENT); 
    lm.addProximityAlert(21.422, 39.826, 5, -1, pendIntent);} 

EDIT: это уведомление Обработчик класс

package app.historical_markers.historical_markers; 


    import android.app.NotificationManager; 
    import android.app.PendingIntent; 
    import android.content.Context; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.support.v4.app.NotificationCompat; 
    import android.support.v4.app.TaskStackBuilder; 
    import android.support.v7.app.ActionBarActivity; 

    import app.historical_markers.historical_markers.Not_Signed_In.KSA_Map; 


    public class Notification_Handler extends ActionBarActivity { 
     final int notificationID = 1234; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this); 
     mBuilder.setSmallIcon(R.drawable.icon2); 
     mBuilder.setContentTitle("Notification Alert!!!"); 
     mBuilder.setContentText("Hi, You are near this Marker!"); 

     Intent resultIntent = new Intent(this, KSA_Map.class); 
     TaskStackBuilder stackBuilder = TaskStackBuilder.create(this); 
     stackBuilder.addParentStack(KSA_Map.class); 

// Adds the Intent that starts the Activity to the top of the stack 
     stackBuilder.addNextIntent(resultIntent); 
     PendingIntent resultPendingIntent = stackBuilder.getPendingIntent(0, PendingIntent.FLAG_UPDATE_CURRENT); 
     mBuilder.setContentIntent(resultPendingIntent); 

     NotificationManager mNotificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); 

// notificationID allows you to update the notification later on. 
     mNotificationManager.notify(notificationID, mBuilder.build()); 

    }} 

ответ

0

Единицы параметра радиуса в LocationManager.addProximityAlert() находится в нескольких метрах. Вы указали значение 5. Это слишком мало. GPS не так точен, и вы указали, что ваш лат/длинный до точности всего около 10 метров.

Используйте значение большего радиуса, примерно 100. Код для создания PendingIntent верен.

+0

Хорошо спасибо, я изменю радиус, но моя главная проблема заключается в том, как добавить уведомление в оповещение о близости, а не начать другое намерение? – showihd

+0

Предупреждение о близости укажет только активность, которую вы указали, в этом случае Notification_Handler. Если вы хотите, чтобы уведомление появилось, вам нужно поместить код для его создания в Notification_Handler. Вы говорите, что действие выполняется, у вас есть код для публикации уведомления, но уведомление не появляется? Если это так, отправьте код в Notification_Handler, который генерирует уведомление. –

+0

Я отредактировал вопрос и добавил класс обработчика уведомлений, есть ли что-то в этом плохого? – showihd

Смежные вопросы