热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

Android震动与提示音实现代码

这篇文章主要为大家详细介绍了Android震动与提示音实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了android消息提示的具体代码,供大家参考,具体内容如下

protected AudioManager audioManager;
 protected Vibrator vibrator;

 audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE); //此方法是由Context调用的
 vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE); //同上

 /**
   * vibrate and play tone
   */
  public void vibrateAndPlayTone(EMMessage message) {
   if (System.currentTimeMillis() - lastNotifiyTime <1000) {
      // received new messages within 2 seconds, skip play ringtone
      return;
    }
    
    try {
      lastNotifiyTime = System.currentTimeMillis();
      
      // check if in silent mode
      if (audioManager.getRingerMode() == AudioManager.RINGER_MODE_SILENT) 
      {
         Log.e("TAG","已经调成静音");
         return;
      }
      long[] pattern = new long[] { 0, 180, 80, 120 };
      vibrator.vibrate(pattern, -1); //震动

      if (ringtOne== null) {
         Uri notificatiOnUri= RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);

         ringtOne= RingtoneManager.getRingtone(appContext, notificationUri);
         if (ringtOne== null) {
           Log.d(TAG, "cant find ringtone at:" + notificationUri.getPath());
           return;
         }
       }
        
        
       if (!ringtone.isPlaying()) {
         //String vendor = Build.MANUFACTURER;
          
         ringtone.play();
          // for samsung S3, we meet a bug that the phone will
          // continue ringtone without stop
          // so add below special handler to stop it after 3s if
          // needed
         if (vendor != null && vendor.toLowerCase().contains("samsung")) {
           Thread ctlThread = new Thread() {
             public void run() {
               try {
                 Thread.sleep(3000);
                 if (ringtone.isPlaying()) {
                   ringtone.stop();
                 }
               } catch (Exception e) {
               }
             }
           };
           ctlThread.run();
       }
      
   } catch (Exception e) {
     e.printStackTrace();
   }
 }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


推荐阅读
  • 本文详细介绍了Linux系统中用于管理IPC(Inter-Process Communication)资源的两个重要命令:ipcs和ipcrm。通过这些命令,用户可以查看和删除系统中的消息队列、共享内存和信号量。 ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • 本文介绍了如何在 ASP.NET 中设置 Excel 单元格格式为文本,获取多个单元格区域并作为表头,以及进行单元格合并、赋值、格式设置等操作。 ... [详细]
  • LDAP服务器配置与管理
    本文介绍如何通过安装和配置SSSD服务来统一管理用户账户信息,并实现其他系统的登录调用。通过图形化交互界面配置LDAP服务器,确保用户账户信息的集中管理和安全访问。 ... [详细]
  • Android 自定义 RecycleView 左滑上下分层示例代码
    为了满足项目需求,需要在多个场景中实现左滑删除功能,并且后续可能在列表项中增加其他功能。虽然网络上有很多左滑删除的示例,但大多数封装不够完善。因此,我们尝试自己封装一个更加灵活和通用的解决方案。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 本文详细介绍了 Charles 工具的下载、安装、配置及使用方法,特别针对 HTTP 和 HTTPS 协议的数据抓取进行了说明。 ... [详细]
  • 网络爬虫的规范与限制
    本文探讨了网络爬虫引发的问题及其解决方案,重点介绍了Robots协议的作用和使用方法,旨在为网络爬虫的合理使用提供指导。 ... [详细]
  • 本文介绍了 AngularJS 中的 $compile 服务及其用法,通过示例代码展示了如何使用 $compile 动态编译和链接 HTML 元素。 ... [详细]
  • javax.mail.search.BodyTerm.matchPart()方法的使用及代码示例 ... [详细]
  • 本文详细介绍了 Python 中 thread 和 threading 模块的使用方法,并提供了丰富的示例和解释。文章首发于 HURUWO 的博客小站,本平台进行同步备份发布。如遇图片加载失败或有任何疑问,欢迎前往原博客留言。 ... [详细]
  • Flutter 2.* 路由管理详解
    本文详细介绍了 Flutter 2.* 中的路由管理机制,包括路由的基本概念、MaterialPageRoute 的使用、Navigator 的操作方法、路由传值、命名路由及其注册、路由钩子等。 ... [详细]
  • [c++基础]STL
    cppfig15_10.cppincludeincludeusingnamespacestd;templatevoidprintVector(constvector&integer ... [详细]
  • ZooKeeper 入门指南
    本文将详细介绍ZooKeeper的工作机制、特点、数据结构以及常见的应用场景,包括统一命名服务、统一配置管理、统一集群管理、服务器动态上下线和软负载均衡。 ... [详细]
  • 自动验证时页面显示问题的解决方法
    在使用自动验证功能时,页面未能正确显示错误信息。通过使用 `dump($info->getError())` 可以帮助诊断和解决问题。 ... [详细]
author-avatar
I汽车I生活
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有