Notification - um exemplo |
Top Previous Next |
|
Tela
Tela que cria a notificação ao pressionar botão: Notificação: Ao clicar na notificação abre essa activity: NotificandoWorldActivity.java
package com.notificando;
import android.app.Activity; import android.app.Notification; import android.app.NotificationManager; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button;
public class NotificandoWorldActivity extends Activity implements OnClickListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
Button button1 = (Button) findViewById(R.id.button1); button1.setOnClickListener(this); }
public void onClick(View arg0) {
// barra de status String tickerText = "Você recebeu uma mensagem"; // detalhes CharSequence titulo = "Atenção"; CharSequence mensagem = "Você recebeu uma mensagem do papa"; // ---------------- cria notificação // pega o servico NotificationManager nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); Notification note = new Notification(R.drawable.chat, tickerText, System.currentTimeMillis()); // vamos criar uma intent que será usada para abrir um activity quando usuario clicar na mensagem Intent it = new Intent(this, TelaChamadaPelaNotificacao.class); it.putExtra("mensagem", "Essa mensagem é da notificação"); // PendingIntent é "vinculada" a uma notification para abrir a intent PendingIntent p = PendingIntent.getActivity(this, 0, it, 0); // informações note.setLatestEventInfo(this, titulo, mensagem, p); // vibrar espera 100ms, vibra por 250ms, espera 100ms e vibra por 500ms note.vibrate = new long[] { 100, 250, 100, 500 }; // id - numero unico que irá identificar nm.notify(99, note); } }
main.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >
<Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Notificar" />
</LinearLayout>
TelaChamadaPelaNotificacao.java
package com.notificando;
import android.app.Activity; import android.app.NotificationManager; import android.content.Intent; import android.os.Bundle; import android.widget.TextView;
public class TelaChamadaPelaNotificacao extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.janela);
// pega a mensagem que veio pela Intent --- opcional Intent it = getIntent(); TextView textView2 = (TextView)findViewById(R.id.textView2); textView2.setText(it.getStringExtra("mensagem"));
// cancela a notificacao - caso contrário ela fica pra sempre NotificationManager nm = (NotificationManager)getSystemService(NOTIFICATION_SERVICE); // para cancelar é necessário o MESMO ID nm.cancel(99); } }
janela.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >
<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Oie!" android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Medium Text" android:textAppearance="?android:attr/textAppearanceMedium" />
</LinearLayout>
Manifest
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.notificando" android:versionCode="1" android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" /> <uses-permission android:name="android.permission.VIBRATE"/>
<application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".TelaChamadaPelaNotificacao" />
<activity android:name=".NotificandoWorldActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
</manifest> |