2013-10-12 4 views
0

Я хочу, чтобы это произошло, когда один подключился к гарнитуре, появляется значок уведомления. Я сделал это, когда телефон включил этот запуск, который запускает класс MainActivity, который имеет код для значка уведомления в методе OnCreate, поэтому он просто запускается автоматически. Проблема в том, что он запускает всю активность и приложение, чего я не хочу. Я просто хочу, чтобы значок появился. Как я могу это сделать? Спасибо!Создание значка уведомления появляется в плагине загрузки/гарнитуры

public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    Intent myIntent = new Intent(context, MainActivity.class); 
    myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(myIntent); 
} 

Приведенный выше код запускает MainActivity при загрузке.

Уведомление Icon Код

//Notification Icon Starts 
    NotificationManager nm=(NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE); 
    Notification notification=new Notification(R.drawable.icon_notification, "Icon Notification", System.currentTimeMillis()); 
    Context context=MainActivity.this; 
    PendingIntent contentIntent = PendingIntent.getActivity(this, 0, new Intent(this, MainActivity.class), Notification.FLAG_ONGOING_EVENT);   
    notification.flags = Notification.FLAG_ONGOING_EVENT; 
    notification.setLatestEventInfo(this, "Notification Icon", "Touch for more options", contentIntent); 
    Intent intent=new Intent(context,MainActivity.class); 
    PendingIntent pending=PendingIntent.getActivity(context, 0, intent, 0); 
    nm.notify(0, notification); 
    //Notification Icon Ends 
+0

Не могли бы вы уточнить свой вопрос. Где вам нужно уведомление? Пожалуйста, добавьте еще код. –

+0

@androiduser Мне действительно нужно, чтобы значок уведомлений появлялся всякий раз, когда пользователь подключает туда наушники. Я хочу, чтобы уведомление появлялось в самой верхней части телефона (область уведомлений, вытащить это для ящика уведомлений). У меня уже есть код для это написано и работает. (Обновлен основной вопрос с ним) Но я просто хочу, чтобы этот код запускался всякий раз, когда пользователь подключает туда наушники. Я не хочу, чтобы приложение запускалось или что-то еще, только для того, чтобы этот значок появлялся. – Fernando

ответ

0

Как я уже писал в your last question, добавьте <receiver> в манифесте, который прослушивает для ACTION_HEADSET_PLUG вещания. documentation показывает Intent дополнительные услуги, которые вы можете использовать, чтобы узнать, если подключена гарнитура (state) и т.д.

+0

Я получил это. Использование этого ресивера. '<Приемник Android: " BootReciever" имя => <намерения фильтр> \t \t \t <действие андроид: имя = "android.intent.ACTION_HEADSET_PLUG"/> \t \t \t \t 'Но как бы я мог сделать заявление if else, говорящее, что с этим делать. и где. вот что меня смущает – Fernando

+0

@FernandoRamirez: Я понятия не имею, о чем вы говорите. Вы «хотите сделать это, когда одна заглушка там гарнитура появляется значок уведомления». Для этого требуется около дюжины строк кода в методе 'onReceive()' набора BroadcastReceiver для прослушивания трансляций ACTION_HEADSET_PLUG. – CommonsWare

+0

Мне просто нужно знать, как заставить его работать в фоновом режиме, например, для его обнаружения, не открывая приложение. Как в этом новом вопросе. Я решил все свои проблемы, кроме этого, это мой последний. http://stackoverflow.com/questions/19368767/how-to-call-this-even-when-the-app-hasnt-even-started – Fernando

0

я разместил решение, которое позволяет контролировать состояние наушников (проводные и Bluetooth), over here. Это решение может быть легко расширено, чтобы вы могли отображать уведомление.