Android提供了一系列的API,是我们可以在程序中调用很多手机的多媒体资源,从而编写出更加丰富的应用程序。
通知(Notification)是Android中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知后,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后可以看到通知的详细内容。
无论在哪里创建通知,整体的步骤都是相同的,具体的步骤如下:
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE) ;
1 Notification notification = new Notification(R.drawable.ic_launcher, "this is ticker text", java.lang.System.currentTimeMillis()) ;
2 notification.setLatestEventInfo(this, "this is the title", "this is content text", null);
1 manager.notify(1,notification);
1 NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE) ;
2 Notification notification = new Notification(R.drawable.ic_launcher, "this is ticker text", java.lang.System.currentTimeMillis()) ;
3
4 //为通知的添加点击效果
5 Intent intent = new Intent(this,NotificationActivity.class) ;
6 PendingIntent pi = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT) ;
7
8 notification.setLatestEventInfo(this, "this is the title", "this is content text", pi);
9 manager.notify(1,notification);
就这样,我们通过点击通知的小图标就可以跳转到NotificaitonActivity活动中去了。
1 public class NotificationActivity extends Activity {
2
3 @Override
4 protected void onCreate(Bundle savedInstanceState) {
5 super.onCreate(savedInstanceState);
6 setContentView(R.layout.activity_notification);
7 //取消通知,否则跳转过来之后通知仍然存在
8 NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE) ;
9 manager.cancel(1) ;
10 }
11 }
此外,我们还可以通过Noification的属性sound、vibrate、ledARGB等来设置通知到达时的铃声、震动以及前置LED灯的闪烁等。具体参数的设置方法参见:Android中通知的使用-----Notification详解
收发短信是手机最基本的功能之一了,每个Android手机都会内置一个短信的应用程序,我们使用它就可以轻松完成收发短信的操作了。但是我们也可以自己写相关的应用程序实现这样的功能。也可以具体参见:Android实战技巧之三十九:短信收发。
1 class MesssageReceiver extends BroadcastReceiver{
2 @Override
3 public void onReceive(Context context, Intent intent) {
4 Bundle bundle = intent.getExtras() ;
5 //提取短信消息
6 Object [] pdus = (Object[]) bundle.get("pdus") ;
7 SmsMessage [] messages = new SmsMessage [pdus.length] ;
8 for(int i = 0 ; i < pdus.length ; i++){
9 messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]) ;
10 }
11 //提取发送号码
12 String address = messages[0].getDisplayOriginatingAddress() ;
13 String fullMessage = "" ;
14 //获取发送内容
15 for(SmsMessage msg : messages){
16 fullMessage += msg.getMessageBody() ;
17 }
18 //显示出来
19 sender.setText(address);
20 content.setText(fullMessage);
21 }
22
23 }