android Notification的使用

我们在用手机的时候,如果来了短信,而我们没有点击查看的话,是不是在手机的最上边的状态栏里有一个短信的小图标提示啊?你是不是也想实现这种功能呢?今天的Notification就是解决这个问题的。

[java]  view plain copy
  1. package cn.com.chenzheng_java;  
  2.   
  3. import android.app.Activity;  
  4. import android.app.Notification;  
  5. import android.app.NotificationManager;  
  6. import android.app.PendingIntent;  
  7. import android.content.Context;  
  8. import android.content.Intent;  
  9. import android.net.Uri;  
  10. import android.os.Bundle;  
  11. import android.provider.MediaStore.Audio;  
  12. import android.view.View;  
  13. import android.widget.Button;  
  14.   
  15. /*** 
  16.  * @description 状态栏通知相关 
  17.  * @author chenzheng_java 
  18.  *  
  19.  */  
  20. public class NotificationActivity extends Activity {  
  21.     @Override  
  22.     protected void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.notification);  
  25.   
  26.         Button button = (Button) findViewById(R.id.button);  
  27.         button.setOnClickListener(new View.OnClickListener() {  
  28.   
  29.             @Override  
  30.             public void onClick(View v) {  
  31.                 addNotificaction();  
  32.   
  33.             }  
  34.         });  
  35.   
  36.     }  
  37.       
  38.       
  39.       
  40.   
  41.     /** 
  42.      * 添加一个notification 
  43.      */  
  44.     private void addNotificaction() {  
  45.         NotificationManager manager = (NotificationManager) this  
  46.         .getSystemService(Context.NOTIFICATION_SERVICE);  
  47.         // 创建一个Notification  
  48.         Notification notification = new Notification();  
  49.         // 设置显示在手机最上边的状态栏的图标  
  50.         notification.icon = R.drawable.excel;  
  51.         // 当当前的notification被放到状态栏上的时候,提示内容  
  52.         notification.tickerText = "注意了,我被扔到状态栏了";  
  53.           
  54.         /*** 
  55.          * notification.contentIntent:一个PendingIntent对象,当用户点击了状态栏上的图标时,该Intent会被触发 
  56.          * notification.contentView:我们可以不在状态栏放图标而是放一个view 
  57.          * notification.deleteIntent 当当前notification被移除时执行的intent 
  58.          * notification.vibrate 当手机震动时,震动周期设置 
  59.          */  
  60.         // 添加声音提示  
  61.         notification.defaults=Notification.DEFAULT_SOUND;  
  62.         // audioStreamType的值必须AudioManager中的值,代表着响铃的模式  
  63.         notification.audioStreamType= android.media.AudioManager.ADJUST_LOWER;  
  64.           
  65.         //下边的两个方式可以添加音乐  
  66.         //notification.sound = Uri.parse("file:///sdcard/notification/ringer.mp3");   
  67.         //notification.sound = Uri.withAppendedPath(Audio.Media.INTERNAL_CONTENT_URI, "6");   
  68.         Intent intent = new Intent(this, Notification2Activity.class);  
  69.         PendingIntent pendingIntent = PendingIntent.getActivity(this0, intent, PendingIntent.FLAG_ONE_SHOT);  
  70.         // 点击状态栏的图标出现的提示信息设置  
  71.         notification.setLatestEventInfo(this"内容提示:""我就是一个测试文件", pendingIntent);  
  72.         manager.notify(1, notification);  
  73.           
  74.     }  
  75.   
  76. }  

点击按钮时候,状态栏会显示:

看到了吧,状态栏多出来一个excel图标,当我按住图标不放,往下拖动的时候,出来了这个页面

然后,当我们点击这个对话框之后,就会触发intent,跳转到Notification2Activity.java这个activity。

----------------------------------------------------------------------------------------

注意,NotificationManager里的notify(id,notification)中的id是用来唯一标识我们当前的这个notification的标识符,我们通过cancel方法删除通知时,传递的就是这个值。可能读者在看很多文档的时候,发现这个地方指定了一个莫名奇妙的值,例如R.drawable.icon,很多朋友就纳闷了,为什么这里要指定一个图片呢。这里笔者就介绍下,为什么呢?

 答案其实很简单,我们都知道,我们这里对参数的唯一要求就是,这个id要和notify方法中的一致,并且是唯一;只要满足了这两项,其他的都无所谓。notify和cancel里一致我们作为开发者,太好控制了,但是唯一呢,我们还真不好说,于是这里就有些人动小脑筋了,很巧妙的用了我们系统中的图片资源或者其他资源的索引ID,我们都知道,这些值肯定都是唯一的!

资源下载链接为: https://pan.quark.cn/s/67c535f75d4c 在机器人技术中,轨迹规划是实现机器人从一个位置平稳高效移动到另一个位置的核心环节。本资源提供了一套基于 MATLAB 的机器人轨迹规划程序,涵盖了关节空间和笛卡尔空间两种规划方式。MATLAB 是一种强大的数值计算与可视化工具,凭借其灵活易用的特点,常被用于机器人控制算法的开发与仿真。 关节空间轨迹规划主要关注机器人各关节角度的变化,生成从初始配置到目标配置的连续路径。其关键知识点包括: 关节变量:指机器人各关节的旋转角度或伸缩长度。 运动学逆解:通过数学方法从末端执行器的目标位置反推关节变量。 路径平滑:确保关节变量轨迹连续且无抖动,常用方法有 S 型曲线拟合、多项式插值等。 速度和加速度限制:考虑关节的实际物理限制,确保轨迹在允许的动态范围内。 碰撞避免:在规划过程中避免关节与其他物体发生碰撞。 笛卡尔空间轨迹规划直接处理机器人末端执行器在工作空间中的位置和姿态变化,涉及以下内容: 工作空间:机器人可到达的所有三维空间点的集合。 路径规划:在工作空间中找到一条从起点到终点的无碰撞路径。 障碍物表示:采用二维或三维网格、Voronoi 图、Octree 等数据结构表示工作空间中的障碍物。 轨迹生成:通过样条曲线、直线插值等方法生成平滑路径。 实时更新:在规划过程中实时检测并避开新出现的障碍物。 在 MATLAB 中实现上述规划方法,可以借助其内置函数和工具箱: 优化工具箱:用于解决运动学逆解和路径规划中的优化问题。 Simulink:可视化建模环境,适合构建和仿真复杂的控制系统。 ODE 求解器:如 ode45,用于求解机器人动力学方程和轨迹执行过程中的运动学问题。 在实际应用中,通常会结合关节空间和笛卡尔空间的规划方法。先在关节空间生成平滑轨迹,再通过运动学正解将关节轨迹转换为笛卡
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值