You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在BeeWare中开发Android应用,如何调用Android振动器API?

在BeeWare中调用Android振动器API的方案

由于Toga框架暂未封装跨平台振动API,你可以直接调用Android原生API实现振动功能,具体步骤如下:

  • 获取Android原生上下文:通过BeeWare应用实例的app.native属性获取Android的Activity对象,这是访问原生服务的核心入口。
  • 获取振动器服务:利用Activity的getSystemService方法获取VIBRATOR_SERVICE实例。
  • 执行振动操作:根据Android版本选择对应的振动调用方式(Android 8.0+需使用VibrationEffect)。

示例代码

from android.os import Vibrator, VibrationEffect, Build
from android.content import Context

def vibrate(app, duration=500):
    # 获取原生Activity
    activity = app.native
    # 获取振动器服务
    vibrator = activity.getSystemService(Context.VIBRATOR_SERVICE)
    
    if vibrator.hasVibrator():
        if Build.VERSION.SDK_INT >= Build.VERSION_CODES.O:
            # Android 8.0及以上版本的振动实现
            effect = VibrationEffect.createOneShot(duration, VibrationEffect.DEFAULT_AMPLITUDE)
            vibrator.vibrate(effect)
        else:
            # 低版本直接调用vibrate方法
            vibrator.vibrate(duration)

关键注意点

  • 添加权限:必须在项目的android/AndroidManifest.xml中声明振动权限:
    <uses-permission android:name="android.permission.VIBRATE" />
    
  • 版本兼容:务必做Android版本判断,避免因API差异导致应用崩溃。
  • 权限说明:Android 13及以下版本中,VIBRATE属于普通权限,无需动态申请,仅需在Manifest中声明即可。

内容的提问来源于stack exchange,提问作者xperroni

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 18:39:54