专栏首页mukekeheart的iOS之旅Android基础总结(10)——手机多媒体的运用:通知、短信、相机、视频播放

Android基础总结(10)——手机多媒体的运用:通知、短信、相机、视频播放

Android提供了一系列的API,是我们可以在程序中调用很多手机的多媒体资源,从而编写出更加丰富的应用程序。

1、通知的使用

通知(Notification)是Android中比较有特色的一个功能,当某个应用程序希望向用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一条通知后,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后可以看到通知的详细内容。

  无论在哪里创建通知,整体的步骤都是相同的,具体的步骤如下:

  1. 创建一个NotificationManager类的对象来对通知进行管理,这里可以通过Context的getSystemService(Context.NOTIFICATION_SERVICE)方法获取到。
NotificationManager manager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE) ;
  1. 接下来我们需要创建一个Notification对象,这个对象用于存储通知所需的各种信息,我们可以用其有参构造函数来进行创建。并对其相关参数进行设置
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. 然后我们通过NotificationManager的notify(int id, Notification notification)方法将通知对象发送出去。这样我们发送通知的功能就完成了。
1 manager.notify(1,notification);
  1. 最后,我们可以通过PendingIntent来实现点击通知后的效果。PendingIntent和Intent的功能非常相似,不同的是Intent是立即执行跳转活动,而PendingIntent则更加倾向于在某个合适的实际去执行动作。关于两者之间的区别详细可以参见:Intent和PendingIntent的区别。我们一般通过其静态方法getActivity()方法、getBroadcast()方法、getService()方法来获取Pendingintent的实例
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. 跳转到新的活动中去了之后,我们要调用NotificationManager的cancel(int id)方法来取消通知,从而取消那个图标
 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详解

2、接收和发送短信

   收发短信是手机最基本的功能之一了,每个Android手机都会内置一个短信的应用程序,我们使用它就可以轻松完成收发短信的操作了。但是我们也可以自己写相关的应用程序实现这样的功能。也可以具体参见:Android实战技巧之三十九:短信收发

  • 发送短信:这一功能实际上很简单,只用调用SmsManager的sendTextMessage()方法就可以将短信发送出去,当然,这个方法接收好几个参数,具体的有电话号码,短信内容,等等,当然,我们还可以通过注册一个广播接收器来获取短信发送成功还是失败,详细的用法参见: android中发送短信
  • 接收短信:实际上,每当有短信到来时,系统会接收到一条相应的广播,所以对于接收短信的功能,我们只需要实现一个广播接收器就可以了,在重写onReceive()方法中来处理接收到的信息。信息的相关内容都封装在传进来的Intent中,可以按照下面的方法进行提取:
 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 }

3、调用摄像头和相册

4、播放多媒体文件

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Android基础总结(8)——服务

    服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行哪些不需要和用户交互而且还要长期运行的任务。服务的运行不依赖任何用户界...

    mukekeheart
  • 二叉树的基本概念和遍历

    一、二叉树的基本概念 平衡二叉树:如果一棵树不为空,并且其中所有的子树都满足各自的左子树与右子树的高度差都不超过1。(空树是平衡二叉树)  1 //判断二叉树...

    mukekeheart
  • final、finally、finalize的区别

    final:修饰符,可以用于修饰成员、方法和类。 如果一个类被声明为final,意味着该类不能再派生出新的子类,不能作为父类被继承。因此一个类不能即被声明为ab...

    mukekeheart
  • 短信互联网化能否“拯救”短信?

    时至今日,PC端互联网日渐饱和已不可逆转,而移动互联网正在蓬勃发展,席卷各个细分行业并衍生出更多垂直服务,比如app储存、app测试等,然而还有很多渐入末路,意...

    曾响铃
  • 短信 | 教你使用 JAVA实现 【短信发送】 功能

    码神联盟
  • 腾讯云短信怎么样?

    腾讯云短信依托腾讯强大的技术和丰富的经验,为 QQ、微信等亿级平台和10万+客户提供短信服务,稳定可靠,秒级触达。现在腾讯云有了关于国内短信套餐的优惠活动,让...

    return null
  • 短信,到底是怎么工作的?

    近日,工信部发布的《2018年上半年通信业经济运行情况》显示,上半年我国移动短信业务量同比增长8.8%;移动短信业务收入完成195亿元,同比增长5.7%。业内人...

    鲜枣课堂
  • 腾讯云短信套餐优惠活动价格

    腾讯云短信99%到达率,支持大容量、高并发处理,自购买之日起两年内有效。(因腾讯云短信优惠活动,价格有时会有变动。具体实际价格以腾讯云短信显示的价格为准)

    大大小小
  • 垃圾短信回复退订,千万别上当

    节日将近,又一波短信轰炸来了,互联网时代,网购时代,相信大家对下面的短信一定不陌生,作为程序猿的我提醒您,千万不要回!千万不要回!千万不要回!「重要的事情说三遍...

    Bug生活2048
  • 106短信平台如何申请

    短信平台作为企业开展业务不可或缺的部分,已被各行业广泛应用,如:给用户手机发送:验证码短信,物流、订单、账户信息变动通知短信,活动促销短信等。对于还没有接入短信...

    漫道短信平台

扫码关注云+社区

领取腾讯云代金券