实现android按键震动按键声音的机制

按键的时候想要调用系统的震动服务,首先得再AndroidMainfest.xml里面加上相应的权限

<uses-permission android:name="android.permission.VIBRATE" />

然后就是 Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE);

//  vibrator.vibrate(3000);

// 设置Vibrate的震动周期

vibrator.vibrate(new long[]{1000,2000,3000,4000}, 0);

这里再网上找了个写好的震动的方法类

package com.lxb.switchdemo;

import android.app.Activity;
import android.app.Service;
import android.os.Vibrator;
import android.widget.LinearLayout;

/**
 * 手机震动工具类
 *
 * @author Administrator
 *
 */
public class VibratorUtil {

	/**
	 * final Activity activity :调用该方法的Activity实例 long milliseconds :震动的时长,单位是毫秒
	 * long[] pattern :自定义震动模式 。数组中数字的含义依次是[静止时长,震动时长,静止时长,震动时长。。。]时长的单位是毫秒
	 * boolean isRepeat : 是否反复震动,如果是true,反复震动,如果是false,只震动一次
	 */

	public static void Vibrate(final Activity activity, long milliseconds) {
		Vibrator vib = (Vibrator) activity
				.getSystemService(Service.VIBRATOR_SERVICE);
		vib.vibrate(milliseconds);
	}

	public static void Vibrate(final Activity activity, long[] pattern,
			boolean isRepeat) {
		Vibrator vib = (Vibrator) activity
				.getSystemService(Service.VIBRATOR_SERVICE);
		vib.vibrate(pattern, isRepeat ? 1 : -1);
	}
}

当然在你的activity里面调用的时候只需要在onclick下加上

VibratorUtil.Vibrate(Switch_demoActivity.this, 100);

即可实现简单的震动机制

下来总结下按键声音的机制实现,

  1. public class MainActivity extends Activity {
  2. private Button mButton01;
  3. private SoundPool sp;//声明一个SoundPool
  4. private int music;//定义一个整型用load();来设置suondID
  5. @Override
  6. public void onCreate(Bundle savedInstanceState) {
  7. super.onCreate(savedInstanceState);
  8. setContentView(R.layout.activity_main);
  9. mButton01=(Button)findViewById(R.id.mButton01);
  10. sp= new SoundPool(10, AudioManager.STREAM_SYSTEM, 5);//第一个参数为同时播放数据流的最大个数,第二数据流类型,第三为声音质量
  11. music = sp.load(this, R.raw.start, 1); //把你的声音素材放到res/raw里,第2个参数即为资源文件,第3个为音乐的优先级
  12. mButton01.setOnClickListener(new OnClickListener(){
  13. @Override
  14. public void onClick(View v) {
  15. sp.play(music, 1, 1, 0, 0, 1);
  16. }
  17. }
  18. }
  19. }

raw是在res下面新建文件夹,里面都是不需要编译的可以直接用的资源文件,当然为了避免在有的机器里面不能识别按键声音的问日,最好把需要加载的音频格式转换成ogg格式。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-24 00:37:21

实现android按键震动按键声音的机制的相关文章

Android隐藏虚拟按键,关闭开机动画、开机声音

/*********************************************************************** * Android隐藏虚拟按键,关闭开机动画.开机声音 * 声明: * 有时候,我们可能会希望隐藏掉android中的虚拟按键,当然,那个 * Android的开机动画,有时候也是挺讨人厌的,也是可以隐藏的. * * 2016-1-7 深圳 南山平山村 曾剑锋 **********************************************

Android开发之按键、触摸屏和手势输入专业压力测试方法

按键输入.触摸屏输入和手势笔画输入等功能是Android开发的基本功能,其稳定性和健壮性对移动应用系统开发非常重要.按键.触摸屏和手势输入专业压力测试方法可以使用Monkey,对应用程序进行压力测试,检测该应用的稳定性.健壮性.Monkey是Android平台下自动化测试工具,它向系统发送伪随机的用户事件流(如按键输入.触摸屏输入.手势输入等). 一.压力测试工具Monkey基本用法: adb shell monkey [options] 注:若不指定options,Monkey将以无反馈模式启

android 实现模拟按键

android 实现模拟按键方法一 通过Runtime实现,代码如下: try { String keyCommand = "input keyevent " + KeyEvent.KEYCODE_MENU; Runtime runtime = Runtime.getRuntime(); Process proc = runtime.exec(keyCommand); } catch (IOException e) { // TODO Auto-generated catch bloc

调用系统震动和声音

一直以为设置软件的震动或声音是一件很复杂的事情.今天研究了一下,还可以,不算是特别的复杂. 其中,软件的震动和声音,有没有震动,有没有声音,是完全和苹果手机的设置一样的.这个不用纠结. 关于系统的声音: 1.声音格式是MP3或m4r的需要转成caf格式(可先转成aif , aiff,然后修改后缀)2.路径在/System/Library/Audio/UISounds 里,需要更改的可以根据以下列表进行替换3详细列表:信息 ReceivedMessage.caf--收到信息,仅在短信界面打开时播放

cocos2d-x3.2中添加Android手机震动

本人宣布从此博文发出后,我的cocos2dx的引擎从cocos2dx3.1.1跳到cocos2dx3.2,哈哈,其实变化不大的,不碍事~~~ 下面来说说在cocos中添加Android手机震动的功能,亲身体验,网上的教程都是渣渣啊,坑比的很,还要看了原帖http://www.cocos2d-x.org/boards/6/topics/8179,全英文的,蛋疼恼火了许久,才解决~~ 下面进入正题.相信看完本文,什么问题都ok了!!!! 1.在proj.android这个目录下 AndroidMan

【随想】android是个什么东西,andorid机制随想

优秀程序员的天性就是好奇,软件是怎么运作的.屏幕是如何显示的.桌面窗体为何能如此人性化的被鼠标拖动?如果你经常会有这样一些问题迸发在脑海中,恭喜你,你是一名很有潜力的程序员. 我在大学读的是自动化专业,属于电子类,再者对计算机相当感兴趣,第一次看到这玩意时,就觉得这东西太神奇了(其实当时只要看到有屏幕的东西,都觉得很神奇).硬件+软件的深入让我直接打通了了解这一神秘机器的任督二脉.软件我不是最牛逼的,硬件其实我很歇菜.但是透过硬件看软件估计我还有那么一点点发言权.下面相关内容是个人小小的感性认识

Android 进阶学习:事件分发机制全然解析,带你从源代码的角度彻底理解(上)

http://blog.csdn.net/guolin_blog/article/details/9097463 事实上我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博客開始,就零零散散在好多地方使用到了Android事件分发的知识.也有好多朋友问过我各种问题,比方:onTouch和onTouchEvent有什么差别,又该怎样使用?为什么给ListView引入了一个滑动菜单的功能,ListView就不能滚动了?为什么图片轮播器里的图片使用Button而不用ImageView?

Android开发之UI更新交互机制与实例解析

android开发过程中,经常需要更新UI的状态和文案等.这是就需要对UI进行 更新.在android中更新UI一般有三种方法,handler机制.RunOnUiThread方法以及AsyncTask异步类方法等 本文下面就这三种方法进行了演示和代码实现. a.Handler机制通过使用消息机制来实现 b.RunOnUiThread方法是通过运行UI线程来达到更新UI的目的 c.AsyncTask是异步类,通过异步更新来更新UI 效果图如下:           (1)Java功能实现代码如下:

Android开发系列之事件拦截机制

对于Android开发者来说理解事件传递机制的重要性,我想应该是不言而喻的.在一个Activity里面,我们经常会重写onTouchEvent事件,可是重写结束之后,对于是返回true还是返回false却感到迷惑.心情好的时候返回true,心情不好的时候返回false. 要完全理解事件拦截机制,我们首先需要明白这几个方法的作用:dispatchTouchEvent(MotionEvent ev),onInterceptTouchEvent(MotionEvent ev),onTouchEvent