Android_Android系统服务—Vibrator(振动器)

android硬件访问服务分析-vibrator 源码: Vibrator.java (frameworks\base\core\java\android\os) VibratorService.java (frameworks\base\se rvices\core\java\com\android\server) SystemServer.java (frameworks\base\services\java\com\android\ 阅读详情

一个简单的振动器Demo

界面:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity">

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Vibrator(振动器)"
        android:textSize="23sp" />

    <Button
        android:id="@+id/bt_short"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="短振动" />

    <Button
        android:id="@+id/bt_long"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="长振动" />

    <Button
        android:id="@+id/bt_cadence"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="节奏振动" />

    <Button
        android:id="@+id/bt_cancel"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="取消振动" />

</LinearLayout>

package com.liangdianshui.vibrator;

import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.os.Vibrator;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

import java.security.Provider;


public class MainActivity extends Activity implements View.OnClickListener {

    private Button bt_short;
    private Button bt_long;
    private Button bt_cadence;
    private Button bt_cancel;
    private Vibrator vibrator;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        init();

        vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);

    }

    /**
     * 控件的初始化
     */
    private void init() {
        bt_short = (Button) findViewById(R.id.bt_short);
        bt_long = (Button) findViewById(R.id.bt_long);
        bt_cadence = (Button) findViewById(R.id.bt_cadence);
        bt_cancel = (Button) findViewById(R.id.bt_cancel);
        bt_short.setOnClickListener(this);
        bt_long.setOnClickListener(this);
        bt_cadence.setOnClickListener(this);
        bt_cancel.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.bt_short:
                vibrator.cancel();
                vibrator.vibrate(new long[]{100, 200, 100, 200}, 0);
                Toast.makeText(getApplicationContext(), "短振动", Toast.LENGTH_SHORT).show();
                break;
            case R.id.bt_long:
                vibrator.cancel();
                vibrator.vibrate(new long[]{100, 100, 100, 1000}, 0);
                Toast.makeText(getApplicationContext(), "长振动", Toast.LENGTH_SHORT).show();
                break;
            case R.id.bt_cadence:
                vibrator.cancel();
                vibrator.vibrate(new long[]{500, 100, 500, 100, 500, 100}, 0);
                Toast.makeText(getApplicationContext(), "节奏振动", Toast.LENGTH_SHORT).show();
                break;
            case R.id.bt_cancel:
                vibrator.cancel();
                Toast.makeText(getApplicationContext(), "取消振动", Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

最后记得加权限:

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



Android振动功能解析及实现 Android作为一款流行的移动操作系统,提供了丰富的功能和API,其中之一就是振动器系统。本文将详细介绍Android振动功能的实现方法,并提供相应的源代码示例。我们可以通过系统振动器来触发简单的振动,也可以定义自定义的振动模式。此外,我们还可以随时停止振动。Android提供了一个系统级别的振动器,可以通过调用系统服务来使用它。除了触发简单的振动,Android还允许我们定义自定义的振动模式。方法来触发振动,参数是振动的持续时间(以毫秒为单位)。在上面的代码中,我们定义了一个自定义的振动模式。 阅读详情

相关推荐

RK3568平台开发系列讲解(振动器篇)振动器系统架构各层详解

然后通过文件frameworks/base/core/java/android/os/Vibrator.java实现包android.os中的Vibrator类,然后获得名称为vibrator的服务,并配合目录中的IVibratorService.aidl文件向应用程序层提供Vibrator的相关API。在Android系统中,振动器系统的硬件抽象层接口的实现文件是vibrator.h,被保存在目录hardware/libhardware_legacy/include/hardware_legacy/中。

内核笔记 1332

Android Vibrator(震动服务)

Android手机震动主要用到的类是Vibrator类。该类作为一个系统级的服务类,可以通过 Vibrator vibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); 来获得实例。 该类主要包含的方法如下: public boolean hasVibrator(); 判断是否在震动;public void v...

xujian197的博客 2579

Vibrator控制手机震动的Demo

Vibrator控制手机震动的Demo,博客示例的源代码。

一个简单的SystemService(vibrator)

Android 6.0 1:应用怎么使用vibrator     Vibrator mVibrator = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);    //获取Vibrator实例     mVibrator.vibrate(500);     frameworks/base/core/java/android/app/Sy...

alifrank的博客 2111

android 震动功能示例代码

这是一个Android震动的功能的示例代码,主要演示了两种震动功能,默认震动功能和自定义震动功能。

电力市场小白必看:手把手教你用Matlab实现市场出清电价计算(附完整代码)

本文为电力市场初学者提供了使用Matlab计算市场出清电价的完整指南。通过Yalmip和Matpower工具包,详细讲解了从环境配置到模型构建、求解及结果分析的整个过程,帮助读者快速掌握节点电价计算的核心技术。

weixin_30379531的博客 73

Android IPC 之获取服务(IBinder)

前言 IPC 系列文章: 建议按顺序阅读。 Android IPC 之Service 还可以这么理解 Android IPC 之Binder基础 Android IPC 之Binder应用 Android IPC 之AIDL应用(上) Android IPC 之AIDL应用(下) Android IPC 之Messenger 原理及应用 Android IPC 之服务端回调 Android IPC 之获取服务(IBinder) 通过前面的文章我们知道,要进行线程通信的核心是能拿到另一个进程暴露出来的IB

3766

CMap与L1000技术解析:基因表达数据在药物发现中的应用

本文深入解析了CMap(连接图)与L1000技术在药物发现中的核心应用。CMap通过构建基因表达“关系网”,实现基于模式匹配的药物重定位;L1000技术则以低成本、高通量方式生成关键基因表达数据,支撑了LINCS超级数据库。文章以CLUE平台为例,手把手演示了如何利用疾病基因表达签名逆向筛选潜在治疗化合物,并拓展了其在解析药物机制、预测副作用等多场景下的价值。

weixin_29207533的博客 728

Android系统中震动器服务-VibratorService的分析,从App层到硬件抽象层(HAL层)

VibratorService是Android系统中的一个服务,作用是设置手机震动。Vibrator,即震动器,或者称之为马达。在真实的设备中,对应有一个小马达,是安装在手机里的硬件设备。 Android系统提供了硬件抽象层HAL,来让底层驱动开发者适配,这样,整个Android系统的框架层不需要做变更。

记录和分享程序人生的点点滴滴 4974

解决Thingsboard数据下发难题:自定义RPC请求格式的3种方法(含源码修改指南)

本文详细介绍了解决Thingsboard数据下发难题的3种自定义RPC请求格式方法,包括规则链脚本转换、TB-Gateway中间层转换和源码级定制方案。通过实际案例和性能对比,帮助开发者根据项目需求选择最适合的解决方案,提升物联网平台与设备的兼容性。

weixin_29008691的博客 232

Trae+雪球MCP,化身专业的股票分析师(玩转100个MCP系列第二弹)

大家好呀,我是程序员夏叶,深度AI编程使用者,专注于分享AI编程方面的使用技巧、经验以及前沿资讯,有兴趣的可以关注我的公众号,一起学习,共同进步。第二弹,使用Trae+雪球MCP,获取股票实时行情,分析股票走向等,写代码间隙看看股票价格,研究研究行情,哈哈。真的很不错呀,最关键的是,足够隐蔽,同事以为你在写代码,实际你在浏览股票行情,哈哈,感兴趣的可以试一下哦。说实话,沧州明珠这只股我算是砸手里了,不过还好买的不多,哈哈。

cpp加油站的专栏 518

Android提供的系统服务之--Vibrator(振动器)

Android提供的系统服务之--Vibrator(振动器)                                                           ——转载请注明出处:coder-pig Vibrator简介与相关方法: 简单demo——设置频率不同的振动器 对于Vibrator用的最广泛的莫过于

代码拾荒者 972

异步处理优化:多线程线程池与消息队列的选择与应用

本文讨论了两种常见的异步处理方式:多线程线程池和消息队列(MQ)。通过将非核心逻辑异步化,可以提升系统的性能和响应速度。多线程线程池适用于本地并发任务,适合需要快速响应的场景,但无法处理跨服务任务。消息队列则适用于分布式系统,能够解耦服务并保证任务的可靠性和顺序性,适合处理高并发和高可靠性要求的任务。文章提供了实际代码示例,帮助开发者根据业务需求选择合适的异步处理方式。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 170万+

安卓框架振动器系统浅析

基于安卓4.0振动器系统分析 当一个应用程序App去调用vibrate产生振动的时候,其过程如下所示: App调用文件: 例如:当一个用户在打电话的时候产生振动, onCreate: 获取系统的Vibrator服务,  mVibrator = (Vibrator)getSystemService (Context.VIBRATOR_SERVICE); /*************

wh8272878的专栏 618

安装并新建windows下wxwroks7.0 bootrom工程

安装licence,将zwrsLicense-vx7-perm.lic粘贴到安装目录C盘WindRiver/license下。现在双击Workbench 4,新建vxworks7.0工程,会出现下面的情况,因为没有licence。编译完成binaries下生成wxwroks x86格式,可以修改bootrom硬件信息的配置了。单击x86_wxwroks工程右键,build project编译工程。双击桌面Workbench 4打开,新建windows下工程。新建完成,选择finish。

wangjie36的博客 1922

四非人的保研之路,2024(2025届)四非计算机的保研经验分享(西南交通、苏大nlp、西电、北邮、山软、山计、电科、厦大等)

本身我就是福建人,xmu 3小时就能到家,然后导这边毕业要求容易,不想读博,达到要求就能放实习,每周打卡35h,比较自由,遂考虑。北邮弱com,联系了蛮多老师,几乎都给了考核机会,面试的老师好几位都考核人工智能基础,会问你卷积的计算,问的还是蛮细的。当时结果是暂定,以为是稳了,遂没联系其他老师,但是之后询问发现只是候补,懒得联系其他老师,928候补到,放弃。东北大学,2000人大机试,入营点送,全国巡回面试,每个人就面不到10分钟,我就被问了3个问题就结束了,候补。科研组,导师有人脉,想读博出成果可以去。

专注于AI领域前沿知识,业余爱好开发软件 4351

android Vibrator 震动器 使用

private Vibrator mVibrator;         mVibrator = (Vibrator) getSystemService(Service.VIBRATOR_SERVICE);           mVibrator.vibrate(50);

开卷有益 794

Python实战日志_P4_图书馆Web API服务

目标:使用Flask将图书馆系统升级为RESTful API服务,掌握Web开发基础难度:⭐⭐⭐⭐☆预计学习时间:75分钟前置要求:已完成第3篇《个人图书馆管理系统》

qq_39436086的博客 83

android开发笔记之多媒体—振动器(Vibrator)

振动器Vibrator 手机静音时使用振动提示用户,玩游戏,当系统碰撞,爆炸时使用振动带给用户更逼真的体验。 获取振动器Vibrator对象: getSystemService(Service.VIBRATOR_SERVICE)方法 使用三个简单的方法来控制手机振动: ...

chenghunpeng8091的博客 144

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Android该系统提供的服务--Vibrator(振子)

Android该系统提供的服务--Vibrator(振子)                                                           ——转载请注明出处:coder-pig Vibrator简单介绍与相关方法: 简单demo——设置频率不同的振动器 对于Vibrator用的最广...

weixin_34194317的博客 134

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

MTK 平台(MTK6573)马达驱动

Android 振动器系统架构(在根目录下面四个文件) 驱动层 硬件抽象层 JNI框架层 Java应用层 一、驱动层 Android修改、新增Linux内核文件 alps/kernel/drivers/staging/android/timed_output.h /kernel/drivers/staging/android/timed_output.c timed_...

u010783226的专栏 2215

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

手机振动控制

<br /><br /> private Vibrator vibrator = (Vibrator) this.getSystemService(Context.VIBRATOR_SERVICE);<br />vibrator.vibrate(long[] pattern, int repeat);<br />vibrator.vibrate(long milliseconds);<br />vibrator.cancel();

maikol的专栏 1806

Android 手机震动的实现

Vibrator vib = (Vibrator) activity.getSystemService(Service.VIBRATOR_SERVICE); vib.vibrate(95);<uses-permission android:name="android.permission.VIBRATE" />

qq_40014062的博客 408

Vibrator(振动器)

本文介绍了Android振动器(Vibrator)的使用方法,包括其作用原理、权限配置及核心功能。Vibrator可用于触觉反馈、通知提醒等场景,通过与动画结合增强用户体验。文章详细说明了如何获取Vibrator实例、检查设备支持、实现单次/模式振动,并提供了API 26+的VibrationEffect用法。最后给出了一个结合属性动画的完整示例,展示点击按钮时触发振动和缩放动画的实现方式,以及必要的资源释放处理。

m0_57545130的博客 982

震子

文件路径: 1: kernel/drivers/frecomm_kernel/marvell_vibrator.c 2: hardware/libhardware_legacy/vibrator/vibrator.c 3 :framworks/base/services/jni/com_android_server_vibratorservice.cpp

717

Android_(服务)Vibrator振动器

Vibrator振动器是Android给我们提供的用于机身震动的一个服务,例如当收到推送消息的时候我们可以设置震动提醒,也可以运用到游戏当中增强玩家互动性 运行截图: 程序结构 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schem...

weixin_30415801的博客 85
上一篇: Android_程序锁
下一篇: Android_Fragment
Two_Water
博客等级 码龄12年 573粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值