Android - 蓝牙低功耗远程键盘和鼠标

2023-11-29

计划开发一款 Android 应用程序,允许用户通过蓝牙远程控制键盘和鼠标。我见过一些利用用户家庭网络的应用程序,但想了解一些蓝牙结构。这也将是我在 Android 中的第一个项目之一,并将帮助我学习使用 Android-SDK。

使用低功耗蓝牙连接 (BLE) 是否合理?我真的不明白如何差异 of 数据有效负载吞吐量将影响按键和鼠标事件的跟踪和通信。

有什么建议吗?


请注意 BLE 中的不同角色。在常规 BLE 键盘或鼠标中,设备是所谓的外设,而 PC 是中央设备。 Central 可以连接到 Peripheral,但 Peripheral 不能直接与另一个 Peripheral 或 Central 到 Central 连接。然而,对于设备上的 GATT 服务器中包含的数据,PC 也可以是 GATT 客户端。您可以阅读有关 BLE 中的角色和数据传输的更多信息here and here.

但最重要的一点是,Android 目前只公开 API 作为 Central,因此 PC 无法连接到此类设备。这意味着无法使用低功耗蓝牙来实现您的应用程序。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - 蓝牙低功耗远程键盘和鼠标 的相关文章

  • getItemAtPosition() 未在列表视图中返回值

    我创建了一个自定义基本适配器类 用图像和文本填充列表视图 类的代码如下 public class ViewAdapter extends BaseAdapter private Activity activity private Strin
  • Android:动态更改Listview中的图像

    我有一个由以下 xml 定义的列表视图 我需要切换图像当用户单击任何行时 在运行时会出现在列表中 我怎样才能实现这个目标 非常感谢任何帮助 谢谢 list item xml
  • 是否仍然建议使用 AsyncTask 在后台加载 listView 项目?

    背景 我听说有一些在后台加载数据的新解决方案比 AsyncTask 更值得推荐 例如loaders http developer android com reference android content Loader html 问题 As
  • 如何增加 Gradle 守护进程的最大堆大小?

    签署 apk 时 我收到以下消息 To run dex in process the Gradle daemon needs a larger heap It currently has 1024 MB For faster builds
  • 无法禁用 Firestore 中的离线数据

    从我的数据中删除数据后Firestore Database 这需要我的Android app一段时间后才意识到数据已被删除 我认为这是由于自动数据缓存而发生的 我的应用程序与离线使用无关 我想禁用此功能 我已将其添加到我的自定义中Appli
  • XAMARIN - 添加来自 youtube 的视频

    我搜索如何从 youtube 添加视频的信息 例如 我想从一些 YouTube 链接添加视频 我认为它应该在网络视图中 但我需要一些详细信息 因为我找不到有关我的问题的任何信息 您可以使用 webview 播放 youtube 视频 str
  • Android 应用程序主活动出现 ClassNotFoundException

    大多数设备都可以运行我的应用程序 但我收到此错误报告 java lang RuntimeException Unable to instantiate activity ComponentInfo com company app com c
  • Android:NotificationCompat.MediaStyle 操作按钮不执行任何操作

    我有一个简单的 Android 应用程序 其中包含一个Activity and a Service源自于MediaBrowserServiceCompat 我已成功将其设置为通过使用播放我的主要活动中的音频MediaBrowserCompa
  • 获取包含位图支持的画布的 Android 视图上的点的像素颜色值

    我正在尝试找出获取给定点上像素颜色值的最佳方法View http developer android com reference android view View html 我可以通过三种方式写入视图 我设置了背景图像View setBa
  • 带有内容提供商的小部件;无法使用ReadPermission?

    所以我刚刚为我的应用程序实现了一个小部件 它通过我的数据库从数据库获取数据ContentProvider 我在清单中定义了自己的读 写权限 声明我使用它们 似乎没有什么区别 并在内容提供程序中要求它们
  • 错误:类 kotlin.reflect.jvm.internal.FunctionCaller$FieldSetter

    我已尝试一切方法来消除此错误 但它不断出现 Class kotlin reflect jvm internal FunctionCaller FieldSetter can not access a member of class com
  • Eclipse Android 模拟器 - 键盘不工作

    我刚刚更新到最新的 SDK 版本 16 使用最新版本的 API 16 创建了新版本的 AVD 并且我的硬件键盘在模拟器上不再工作 甚至我的其他 avd 使用旧版本的 sdk 任何想法如何解决这一问题 您的 AVD 的 键盘支持 硬件属性是否
  • 拥有可重用对话框的最佳方法是什么?

    在 Android 中创建可重用对话框的最佳方法是什么 阅读通过对话框开发指南 http developer android com guide topics ui dialogs html 我知道我可以使用AlertDialog Buil
  • 安卓独立包

    我有一个很大的 UI 大约 20 25 个屏幕 我应该如何组织我的代码 我应该按功能分成不同的包吗 我是否应该为所有 UI 类创建一个包 然后创建子包进行组织 或者我不应该创建单独的包并组织到文件夹中 任何帮助将不胜感激 当您创建文件夹时
  • 使用磁场计算旋转矩阵

    在获取旋转矩阵值时它包含public static boolean getRotationMatrix float R float I float gravity float geomagnetic 这里我如何计算float gravity
  • 不幸的是 Project_Name 已停止

    我有一个简单的应用程序 您可以在文本视图中输入文本并按提交 它会在另一个活动中显示文本 然而 当我按下提交时 给我消息 不幸的是 发送已停止 我查看了SO上的其他线程 但是不幸的是 myfirstproject 在 java 中停止工作错误
  • 活动构建变体没有测试工件

    我基于 调试 构建变体创建了一个名为 bitrise 的新构建类型 使用 debug 构建变体时 经过检测的 androidTests 构建并运行良好 但是当我切换到新的 bitrise 构建变体时 出现以下错误 Process finis
  • 在自定义对话框中设置文本视图

    我创建了一个自定义对话框 但无法将文本设置到 java 对话框布局中的文本视图中 并且我的程序崩溃了 我的错误是什么 public class Total CBC extends Activity Override protected vo
  • Android 使用不同的签名密钥更新市场应用程序

    开发人员使用他的个人密钥库签署了应用程序 但它应该是公司的密钥库 现在是否可以使用公司的密钥库更新市场中的应用程序 并且仍然可以简化对用户的更新 这有什么后果吗 不可以 您必须将该应用程序作为新应用程序发布到市场上 这次是用公司的key签名
  • 找不到与给定名称“@style/Theme.AppCompat.Light”匹配的资源

    我已经研究这个问题几个小时了 从 github 下载存储库后 任何 xml 文件中的唯一错误是 No resource found that matches the given name style Theme AppCompat Ligh

随机推荐

  • 无法打开该文件,因为您无权查看该文件

    imageData NSData dataWithContentsOfURL self pdfFileUrl options NSDataReadingMappedAlways error error NSLog error localiz
  • sublime 3 制表符和空格不匹配

    我已经浏览网页3次了 但仍然没有解决方案 我有一个简单的 js 文件 我希望我的制表符是 4 个空格而不是 2 个 我将首选项设置更改为选项卡大小为 4 更改了语法特定设置 一切 但仍然是同样的问题 有任何想法吗 Click On状态栏上的
  • 如何将图片保存到localStorage并在下一页显示?

    所以 基本上 我需要上传单个图像 将其保存到 localStorage 然后将其显示在下一页上 目前 我上传了 HTML 文件
  • Jquery ui 选项卡的不同动画

    我正在使用 jquery ui 选项卡小部件 我没有使用 jquery 主题 因为我更喜欢做我自己的 css 和东西 我已经让它工作了 但我想要的是当单击不同的选项卡时 选项卡内容具有不同的动画效果 我想要的是新的选项卡内容从左侧滑入 目前
  • 软删除实体的导航属性

    我有 2 个实体 我是我的数据库 它们看起来像 Vehicles Id VehicleNumber IsDeleted WorkerId Workers Id Name Address 在我的 edmx 中 VehicleId Id Veh
  • 将 Azure 文件服务 CloudFileShare 映射为云服务每个实例上的虚拟目录

    我有一个天蓝色的云服务 我正在尝试升级该服务以实现高可用性 并且我已订阅了已在预览门户中启用的 Microsoft Azure 文件服务预览版 我已经创建了一个新的存储帐户 并且可以看到该存储帐户现在有一个文件端点位于 https
  • 序列化 Collat​​or 实例

    我正在尝试序列化InstitutionResultView类的一些对象 它基本上是包装器番石榴的 TreeMultimap import java io Serializable import java text Collator impo
  • R 数据表中的最小值不等于特定值

    如何从 R 数据表中找到除特定值之外的最小值 例如 数据表中可能存在零 目标是找到最小非零值 我尝试使用sapply with min 但不确定如何指定我们拥有的额外标准 以使最小值不等于某个值 更一般地说 我们如何从数据表中找到不等于可能
  • 如何将 DesignInstance 与 Caliburn.Micro 结合使用

    我正在使用 Caliburn Micro 我有这个 WPF 视图 在设计时在名字等基本属性上成功使用示例数据 但找不到复杂类型的属性和集合的视图
  • 发布版本中未触发命令

    我的主页上有一个按钮可以导航到下一个视图 这在我的 Windows PC Visual Studio 2017 上的模拟 Android 设备 Android 8 1 加速 x86 上的调试构建中非常有效 从我的角度来看 该按钮绑定到我的视
  • 如何在 CakePHP 中使用 cookie 进行身份验证?

    我正在尝试使用我的域中其他页面设置的 cookie 来验证用户身份 假设我使用 cakephp 编写了 needpassword example com cookie 是由 auth example com 生成的 使用 Perl CGI
  • 使用循环运行 Gulp 任务

    我的 Gulp 任务有问题 我使用一个任务来创建多个带有 gulp mustache 的 html 文件 这样我最后就有两个文件 index de html 和 index en html 我有一个 json 文件 其中包含字符串 一切都很
  • 如何在 gnuplot 创建的 png 文件中添加希腊字符

    我使用的是 FreeBSD 系统的商业服务器 没有 root 帐户 我用我的帐户安装 gnuplot 但是 我无法设置字体 因此 我将字体文件复制到我的主目录中 例如 usr fonts 然后 我在 gnuplot 文件中使用以下脚本 se
  • 刷新J表

    我有一个从 Vector 创建的 JTable 如何刷新 JTable 以显示添加到 Vector 的新数据 当 TableModel 发生更改时 您的 JTable 应该自动更新 我在这里迈出了一步 但我猜测您没有使用自己的 TableM
  • UML 共享聚合是否意味着不存在循环?

    In short 共享聚合似乎只表达了一种简单的关联 它显然是一个 建模安慰剂 没有客观理由使用它 除非在建模者就特定附加语义达成一致的特定上下文中 然而 一些消息来源声称共享聚合将意味着实例聚合图中不存在循环 这将使聚合成为图建模领域的强
  • C#.NET WebService 返回对象

    我正在使用 ASP NET C 创建 Web 服务 我从网络服务发送各种数据类型 因此我使用以下结构 public enum WS ServiceResponseResult Success Failure public class WS
  • Java内存:Runtime.getRuntime().maxMemory()

    Runtime getRuntime maxMemory 显示哪个内存 是幸存者 伊甸园 旧的 永久的吗 它是堆的最大大小 它松散地基于 mx or Xmx命令行参数 但由于我不明白的原因 可以减少 1 5 它似乎并不完全相同 这不包括永久
  • 为什么我的函数在输入值大小中使用 Python 时间限制?

    我正在尝试创建一个测试命令的函数time在Python中 该函数应该采取m n作为参数并计算MODEXP a e p 其中 p 最多是素数生成器2 m第一种情况下的 e 是2 n在第二种情况下是2 n 1 a是小于p的随机正整数 这是我的代
  • 如何从u-boot启动Linux内核?

    我的 Linux 内核镜像uImage在我的U盘里 我想从 U Boot 启动它 还有设备树文件am335x evm dtb在我的U盘里 我所做的如下 U Boot usb start Re start USB USB0 scanning
  • Android - 蓝牙低功耗远程键盘和鼠标

    计划开发一款 Android 应用程序 允许用户通过蓝牙远程控制键盘和鼠标 我见过一些利用用户家庭网络的应用程序 但想了解一些蓝牙结构 这也将是我在 Android 中的第一个项目之一 并将帮助我学习使用 Android SDK 使用低功耗