
Android基础知识——运用手机多媒体
调用 获取 调用 获取 调用 在 示例:
发布日期:2021-05-19 15:52:54
浏览次数:17
分类:精选文章
本文共 5546 字,大约阅读时间需要 18 分钟。
Android 系统开发实用指南
1. 将程序运行到手机上
某些代码只有在真机运行时才能看到效果。接下来我们将介绍几种常用的功能。
2. 使用通知
在 Android 系统中,通知是一种有特色的功能。当某个应用程序在后台时需要发送提示信息时,可以使用通知来实现。
2.1 通知的基本用法
getSupportService(NOTIFICATION_SERVICE)
获取 NotificationManager
实例。NotificationChannel
实例。createNotificationChannel(channel)
方法创建 NotificationChannel
。Notification
实例并设置相关属性。manager.notify(1, notification)
发送通知。示例
public class MainActivity extends AppCompatActivity { @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @RequiresApi(api = Build.VERSION_CODES.O) @Override public void onClick(View view) { NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE); NotificationChannel channel = new NotificationChannel("1", "MY_CHANNEL", NotificationManager.IMPORTANCE_DEFAULT); manager.createNotificationChannel(channel); Notification notification = new NotificationCompat.Builder(MainActivity.this, "1") .setContentTitle("This is title") .setContentText("This is text") .setWhen(System.currentTimeMillis()) .setSmallIcon(R.mipmap.ic_launcher) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)) .build(); manager.notify(1, notification); } }); }}
2.2 通知的进阶技巧
在上节中我们只发送了简单的通知。在本节中我们将讨论如何为通知设置更高级的功能。
给通知设置点击事件
Intent intent = new Intent(MainActivity.this, MainActivity2.class);PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);// ... // 示例中省略部分代码 Notification notification = new NotificationCompat.Builder(MainActivity.this, "1") .setContentTitle("This is title") .setContentText("This is text") .setWhen(System.currentTimeMillis()) .setSmallIcon(R.mipmap.ic_launcher) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)) .setContentIntent(pendingIntent) .setAutoCancel(true) .build();
给通知设置提示音
res
目录下新建 raw
文件夹,并存放一段 .mp3
文件。Intent intent = new Intent(MainActivity.this, MainActivity2.class);PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);NotificationChannel channel = new NotificationChannel("2", "MY_CHANNEL", NotificationManager.IMPORTANCE_DEFAULT);channel.setSound( Uri.parse("android.resource://"+MainActivity.this.getPackageName()+"/raw/"+R.raw.music), null);manager.createNotificationChannel(channel);Notification notification = new NotificationCompat.Builder(MainActivity.this, "2") .setContentTitle("This is title") .setContentText("This is text") .setWhen(System.currentTimeMillis()) .setSmallIcon(R.mipmap.ic_launcher) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)) .setContentIntent(pendingIntent) .setAutoCancel(true) .build();manager.notify(1, notification);
给通知设置震动
Intent intent = new Intent(MainActivity.this, MainActivity2.class);PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);NotificationManager manager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);NotificationChannel channel = new NotificationChannel("3", "MY_CHANNEL", NotificationManager.IMPORTANCE_DEFAULT);channel.setSound( Uri.parse("android.resource://"+MainActivity.this.getPackageName()+"/raw/"+R.raw.music), null);channel.setVibrationPattern(new long[]{ 0, 1000, 1000, 1000 // 震动模式});manager.createNotificationChannel(channel);Notification notification = new NotificationCompat.Builder(MainActivity.this, "3") .setContentTitle("This is title") .setContentText("This is text") .setWhen(System.currentTimeMillis()) .setSmallIcon(R.mipmap.ic_launcher) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)) .setContentIntent(pendingIntent) .setAutoCancel(true) .build();manager.notify(1, notification);
2.3 通知的高级功能
在本节中我们将学习如何为通知设置更多属性。
设置长文字
Notification notification = new NotificationCompat.Builder(MainActivity.this, "4") .setContentTitle("This is title") .setStyle(new NotificationCompat.BigTextStyle().bigText("很长的文本")) .setWhen(System.currentTimeMillis()) .setSmallIcon(R.mipmap.ic_launcher) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)) .setContentIntent(pendingIntent) .setAutoCancel(true) .build();
设置图片
Notification notification = new NotificationCompat.Builder(MainActivity.this, "4") .setContentTitle("This is title") .setStyle(new NotificationCompat.BigPictureStyle().bigPicture(BitmapFactory.decodeResource(getResources(), R.drawable.apple))) .setWhen(System.currentTimeMillis()) .setSmallIcon(R.mipmap.ic_launcher) .setLargeIcon(BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher)) .setContentIntent(pendingIntent) .setAutoCancel(true) .build();
设置通知优先级
NotificationChannel channel = new NotificationChannel("5", "MY_CHANNEL", NotificationManager.IMPORTANCE_HIGH);
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2025年04月18日 18时34分15秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
ajax异步提交失败
2019-03-15
一道简单的访问越界、栈溢出pwn解题记录
2019-03-15
Stream 某些API
2019-03-15
测试调用另一台电脑ip是否有用
2019-03-15
mos-excel集成文档
2019-03-15
chat 快问!
2019-03-15
6.Xml
2019-03-15
Linux总结
2019-03-15
DKT—Going Deeper with Deep Knowledge Tracing
2019-03-15
响应的HTTP协议格式+常见的响应码
2019-03-15
创建线程方式
2019-03-15
LRUCache
2019-03-15
关于Linux系统中touch命令的说明
2019-03-15
将windows里的内容直接复制粘贴到ubuntu,提高效率
2019-03-15
将tomcat设置成window自启动服务
2019-03-15
webservice 远程服务器返回错误:(400)错误的请求
2019-03-15
[日常] PHP与Mysql测试kill慢查询并检验PDO的错误模式
2019-03-15
[Linux] 进程间通信
2019-03-15
[PHP] error_reporting(0)可以屏蔽Fatal error错误
2019-03-15
C++ Primer Plus【复习笔记】-【复合类型】
2019-03-15