显示通知样式:
1.添加权限
<
uses-permission
android:name
="
android.permission.VIBRATE
"
/>
<
uses-permission
android:name
="
android.permission.READ_SMS
"
/>
<
uses-permission
android:name
="
android.permission.WRITE_SMS
"
/>
2.代码:
MainActivity:
package zz.itcast.notification;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.ContentValues;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.SystemClock;
import android.telephony.TelephonyManager;
import android.view.View;
public class MainActivity extends Activity {
private NotificationManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
}
public void send(View view) {
// 发送通知 NotificationManager
// 发送一个通知 定义一个编号
finish();
new Thread(){
public void run() {
SystemClock.sleep(5000);
createSMS("95500","您的余额还有XXX元");
sendNotification("95500","您的余额还有XXX元");
}
}.start();
}
private void createSMS(String sender,String content) {
// 内容解析者
ContentValues values = new ContentValues();
values.put("address",sender);
values.put("date", System.currentTimeMillis());
values.put("body", content);
values.put("type", 1); // 1代表别人给我发的 2
values.put("read", 0);
getContentResolver().insert(Uri.parse("content://sms"), values);
}
@SuppressLint("NewApi")
private void sendNotification(String sender,String content) {
Notification noti = new Notification.Builder(this)
.setContentTitle(sender)
.setContentText(content)
// 设置bar上显示的信息
.setTicker(sender+":"+content)
.setSmallIcon(R.drawable.stat_notify_sms)
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.stat_notify_sms)).build();
//
/*
* PedingIntent 未来发生的一件事
* Intent 马上立即做一件事
*/
// 构造一个PedingIntent 实际上是在构造Intent
// Intent要指明跳到哪个界面
/*
* <intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android-dir/mms-sms" />
</intent-filter>
*
*/
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.setType("vnd.android-dir/mms-sms");
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
// 给通知指定要跳到的界面
noti.contentIntent = pIntent;
// 设置声音和震动还有呼吸灯 我都要
noti.defaults = Notification.DEFAULT_ALL;
// 设置点击完之后自动消失
noti.flags = Notification.FLAG_AUTO_CANCEL;
// 设置通知不会消失 永驻
// noti.flags = Notification.FLAG_NO_CLEAR;
manager.notify(0, noti);
}
public void cancle(View view) {
}
}
SecondActivity :
package zz.itcast.notification;
import android.app.Activity;
import android.os.Bundle;
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
}
2.代码:
MainActivity:
package zz.itcast.notification;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.ContentValues;
import android.content.Intent;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.SystemClock;
import android.telephony.TelephonyManager;
import android.view.View;
public class MainActivity extends Activity {
private NotificationManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
}
public void send(View view) {
// 发送通知 NotificationManager
// 发送一个通知 定义一个编号
finish();
new Thread(){
public void run() {
SystemClock.sleep(5000);
createSMS("95500","您的余额还有XXX元");
sendNotification("95500","您的余额还有XXX元");
}
}.start();
}
private void createSMS(String sender,String content) {
// 内容解析者
ContentValues values = new ContentValues();
values.put("address",sender);
values.put("date", System.currentTimeMillis());
values.put("body", content);
values.put("type", 1); // 1代表别人给我发的 2
values.put("read", 0);
getContentResolver().insert(Uri.parse("content://sms"), values);
}
@SuppressLint("NewApi")
private void sendNotification(String sender,String content) {
Notification noti = new Notification.Builder(this)
.setContentTitle(sender)
.setContentText(content)
// 设置bar上显示的信息
.setTicker(sender+":"+content)
.setSmallIcon(R.drawable.stat_notify_sms)
.setLargeIcon(BitmapFactory.decodeResource(getResources(),R.drawable.stat_notify_sms)).build();
//
/*
* PedingIntent 未来发生的一件事
* Intent 马上立即做一件事
*/
// 构造一个PedingIntent 实际上是在构造Intent
// Intent要指明跳到哪个界面
/*
* <intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="vnd.android-dir/mms-sms" />
</intent-filter>
*
*/
Intent intent = new Intent();
intent.setAction("android.intent.action.MAIN");
intent.setType("vnd.android-dir/mms-sms");
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_ONE_SHOT);
// 给通知指定要跳到的界面
noti.contentIntent = pIntent;
// 设置声音和震动还有呼吸灯 我都要
noti.defaults = Notification.DEFAULT_ALL;
// 设置点击完之后自动消失
noti.flags = Notification.FLAG_AUTO_CANCEL;
// 设置通知不会消失 永驻
// noti.flags = Notification.FLAG_NO_CLEAR;
manager.notify(0, noti);
}
public void cancle(View view) {
}
}
SecondActivity :
package zz.itcast.notification;
import android.app.Activity;
import android.os.Bundle;
public class SecondActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);
}
}