通知管理器 NotificationManager:
通知用户的事件发生。
Notification.Builder:
构建器类通知对象。提供了一种方便的方法来设置一个通知的各领域和生成内容视图使用平台的通知布局模板。如果您的应用程序支持版本的Android API级别4大,你可以用NotificationCompat。Builder,可以在Android支持库。
BitmapFactory:创建位图对象从不同的来源,包括文件、流,和字节数组。
System.currentTimeMillis():返回以毫秒为单位的当前时间从1月1日,1970 00:00:00.0 UTC。
// 获取系统时间
SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
Date curDate = new Date(System.currentTimeMillis());//获取当前时间
String str = formatter.format(curDate);
短息通知代码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
/*
* 需要开的权限
* <uses-permission android:name="android.permission.READ_SMS" /> 写信息
* <uses-permission android:name="android.permission.WRITE_SMS" /> 读信息
* <uses-permission android:name="android.permission.VIBRATE" /> 震动
* */
public void show(View view) {
new Thread() {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
Date curDate = new Date(System.currentTimeMillis());//获取当前时间
String str = formatter.format(curDate);
@Override
public void run() {
super.run();
// 定时发送
SystemClock.sleep(5000);
// 短信内容设置
Uri uri = Uri.parse("content://sms");// 全部信息
ContentResolver resolver = getContentResolver();
ContentValues values = new ContentValues();
values.put("address", "10655020395599");// 显示的电话
values.put("date", System.currentTimeMillis());// 显示当前时间
values.put("type", 1);// 类型
values.put("body", "您账户8888在"+ str +"网银转入金额5201314.00元,余额775201314.18[银河系银行]");// 内容
resolver.insert(uri, values);// 添加
// 通知内容设置
NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
Notification.Builder builder = new Notification.Builder(MainActivity.this);
builder.setSmallIcon(R.mipmap.ic_launcher);// 图标
builder.setContentTitle("短信通知");// 标题
builder.setContentText("您账户8888在"+ str +"网银转入金额5201314.00元,余额775201314.18[银河系银行]");// 内容
builder.setWhen(System.currentTimeMillis());// 发送时间
builder.setDefaults(Notification.DEFAULT_ALL);// 设置震动默认提示
builder.setAutoCancel(true);// 打开程序后图标消失
// 通知跳转到信息页面设置
Intent intent = new Intent();
// 初始化隐式意图
intent.setAction("android.intent.action.MAIN");
intent.addCategory("android.intent.category.DEFAULT");
intent.setType("vnd.android.cursor.dir/mms");
PendingIntent pending = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);// 进行包装,不马上执行意图
builder.setContentIntent(pending);// 发送时点击通知。
Notification tion = builder.build();// 返回一个新通知
manager.notify(0, tion);// 通知管理器发送通知
}
}.start();
}
}
Phone联系人数据表,存放地址
data/data/com.android.providers.contacts/databases/contacts2.db
查询步骤
以下是某些博主理解内容,推荐
PendingIntent和Intent区别
intent意思是意图,pending表示即将发生或来临的事情。
PendingIntent这个类用于处理即将发生的事情。比如在通知Notification中用于跳转页面,但不是马上跳转。
Intent 是及时启动,intent 随所在的activity 消失而消失。
PendingIntent 可以看作是对intent的包装,通常通过getActivity,getBroadcast ,getService来得到pendingintent的实例,当前activity并不能马上启动它所包含的intent,而是在外部执行 pendingintent时,调用intent的。
Intent一般是用作Activity、Sercvice、BroadcastReceiver之间传递数据,而Pendingintent,一般用在 Notification上,可以理解为延迟执行的intent,PendingIntent是对Intent一个包装。