android 设置整个app的通知栏Notification 的声音和震动用什么方法

作者&投稿:呼单 (若有异议请与网页底部的电邮联系)
android8.0 notification的声音和震动~

你把setvibrate()里边的01换成100,他就会在完成时震动和响一下了。如果不想要声音和震动可以删除setvibrate和setsound这两个。

builder.setSound(Uri.parse("android.resource://" + context.getPackageName() + "/" + R.raw.notificationvoice));

设置安卓手机通知栏提示音的方法如下。

1、以OPPO手机为例,点击打开手机设置,如图。

2、进入设置页面,下拉菜单找到“声音与振动”选项并点击,如图。

3、进入声音与振动设置页面,如果要将通知栏提示声音设为振动,把“静音时振动”和“静音”两个选项开启就可以了。

4、如果要把通知栏提示音关闭,把“静音时振动”选项关闭,把“静音”选项开启就不会有提示音了。

5、如果需要通知栏有提示音,把以上两个选项关闭就可以了,也就是“静音时振动”和“静音”选项,如图。



Notification即通知,用于在通知栏显示提示信息。
在较新的版本中(API level > 11),Notification类中的一些方法被Android声明deprecated(弃用),其实基本上相当于全部弃用了。
Android官方声明弃用,一定有它的理由,虽然我也不知道是什么人家都建议你不要用了,那就不要老是恪守着N年前的东西了。就像是以前,一说到标签页,大家基本上都会想到TabHost配合ActivityGroup,但Android后来提倡Fragment。
废话说多了,还是小结一下使用方法。

下面按照创建一个通知的步骤一步一步来,同时给出新旧实现方法。
1、获取Notification管理器
NotificationManager noteMng = (NotificationManager)getSystemService(NOTIFICATION_SERVICE);

2、新建一个Notification,设置状态栏显示样式
private Notification note;
//API 11以下
note = new Notification(R.drawable.ico_launcher "显示于屏幕顶端状态栏的文本", System.currentTimeMillis());
//API 11及以上
Notification.Builder builder = new Notification.Builder(nowContext).setTicker("显示于屏幕顶端状态栏的文本")
.setSmallIcon(R.drawable.ic_laucher);

API 11以上版本中,状态栏显示的样式跟下拉通知栏中显示的样式,可以一起设置,就是通过Notification.Builder类来实现,这里的Builder只调用了两个方法来设置状态栏显示样式。

3、设置Notification标志位(非必要步骤)
//FLAG_ONGOING_EVENT表明有程序在运行,该Notification不可由用户清除
note.flags = Notification.FLAG_ONGOING_EVENT;

4、设置点击Notification后的触发事件
//通过Intent,使得点击Notification之后会启动新的Activity
Intent i = new Intent(nowContext, AnotherActivity.class);
//该标志位表示如果Intent要启动的Activity在栈顶,则无须创建新的实例
i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
pendingIntent = PendingIntent.getActivity(nowContext, 100, i, PendingIntent.FLAG_UPDATE_CURRENT);

5、设置Notification在通知栏里的样式
(1)系统默认样式
//API 11以下:
note.setLatestEventInfo(nowContext, "take me to your heart", "Micheal learn to rock", pendingIntent);

//API 16及以上,build()方法要求API 16及以上
//一会API 11以上,一会API16以上,我也很想知道Android的API是怎么设计的
note = builder.setContentIntent(pendingIntent).setContentTitle("title").setContentText("text").build();

(2)自定义样式:
自定义样式,就是让Notification在通知栏显示成自定义的xml布局
应当注意的是,Notification的自定义样式,只支持以下可视组件:
FrameLayout, LinearLayout, RelativeLayout
TextView, Button, AnalogClock, ImageView, ImageButton, Chronometer, ProgressBar

RemoteView view = new RemoteView(nowActivity.getPackageName(), R.layout.note_layout);
//API 11以下
note.contentView = view;
note.contentIntent = pendingIntent;
//API 16及以上,又是build()方法导致的,汗。。
note = builder.setContent(view).setContentIntent(pendingIntent).build();
这个步骤里有一个很值得注意的地方:pendingIntent被设置为note的contentIntent的值,就意味着点击了这个通知才会触发该Intent。
那么如果只是想让自定义布局里的某个按钮触发呢?比如说,弄了一个音乐播放器,Service负责播放音乐,Notification显示当前播放进度和一些简单的暂停按钮、上一首、下一首按钮,让用户不用再打开界面就可以通过Notification上的按钮操纵音乐播放。
假设说想让自定义布局里的一个id为R.id.button1的按钮来触发这个Intent,可以如下操作:
view.setOnClickPendingIntent(R.id.button1, pendingIntent);//在上面创建RemoteView实例后加上这句
然后注意,pendingIntent已经绑定到按钮上了,上面Notificatiion实例中,设置contentIntent的语句要去掉。

6、发布该通知,第一个参数为该notification的ID
noteMng.notify(10, note);

有关Notification的更多详细用法,建议查看官方API文档

这边对应字段存布尔值,后面的动作先判断布尔值再决定做不做。

默认提醒声音:
notification.defaults|=Notification.DAFAULT_SOUND
自定义:
notification.sound=Uri.parse("android.resource://" + getPackageName() + "/" +R.raw.**);


宜兴市18771872099: android 设置整个app的通知notification 的声音和震动用什么方法 -
偶云肠多: Notification中的whene是设置通知的显示时间,通常是调用 System.currentTimeMillis();来获取的.Notification和NotificationManager操作相对比较简单,一般获取系统级的服务NotificationManager,然后实例化Notification,设置它的属性,...

宜兴市18771872099: android 如何让两个apk相互通信 -
偶云肠多: A.apk,B.apk都是我写的.现在我想在B.apk里实现获得A.apk的某控件ID,并向其发送一个按键事件.如何实现,谢谢!也就是用B控制A.这两个apk 是在两个进程里的,(或许可以配置成一个进程.不过如何直接操作这个没有试过.) 所以一般的...

宜兴市18771872099: 安卓系统的手机,怎么修改软件的权限 -
偶云肠多: 工具/原料:手机一部 1、以华为手机为例,在手机桌面上找到“设置”图标,点击打开手机设置界面. 2、在打开的“设置”界面,选择“全部设置”选项卡,然后在“隐私和安全”栏下方找到“权限管理”,点击打开“权限管理”界面. ...

宜兴市18771872099: 怎么给整个app都显示为portrait模式?
偶云肠多: setRequestedOrientation (ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

宜兴市18771872099: Android手机上怎么使用全局代理 -
偶云肠多: 在Android上使用系统自带的代理,限制灰常大,仅支持系统自带的浏览器.这样像QQ、飞信、微博等这些单独的App都不能使用系统的代理.如何让所有软件都能正常代理呢?ProxyDroid这个软件能帮你解决!使用方法及步骤如下:一、推荐...

宜兴市18771872099: Android系统怎样将APP应用安装到SD卡中 -
偶云肠多: 使用手机系统里面的自带应用移动工具1首先,我们打开自己的手机,找到设置界面.Android系统怎样将APP应用安装到SD卡中2然后我们找到“通用”,不同版本的手机安卓系统可能不一样.大家仔细找一下哈.然后找到应用程序列表...

宜兴市18771872099: android里面有多个activity如何设置一个为主界面上的activity? -
偶云肠多: 答:首先打开AndroidManifest.xml配置文件,在AndroidManifest.xml里修改 找到activity标签,添加如下内容<activity android:name=".CdBusSearchActivity" android:label="@string/app_name" ><intent-filter><action android:name="android...

宜兴市18771872099: 安卓系统如何将下载软件都设置为至SD卡中+手机内存太小了不够用+但是没有设置项可以将
偶云肠多: 有两种方法.1个是在手机设置里,设成安装在SD卡上,这样在手机上安装的软件就安装在SD卡上了.第2个,配合电脑,下载手机助手,在手机助手的设置里,设成安装在SD卡上,这样在电脑的手机助手里安装软件就安装在SD卡上了.

宜兴市18771872099: 怎么用Android代码锁定整个app竖屏 -
偶云肠多: 方法:用压缩软件打开apk文件,解压出根目录中的classes.dex文件 使用cmd ,dex2jar.bat classes.dex命令将classes.dex转换为jar 再用jd-gui打开该jar就可以查看源码了,如果apk安全性好的话,有些代码是看不到的.

宜兴市18771872099: android studio 如何去调试整个应用 -
偶云肠多: Android studio是Google为Android应用开发提供的一个强大的集成开发环境(IDE),有着非常多的帮助开发者进行开发的工具.虽然Android应用也可以使用Eclipse开发,但是Android Studio将是Google未来唯一长期支持的开发工具. Android Studio启动并打开工程后它的默认布局大体如下:

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网