打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
(四十七) 蓝牙自拍杆原理学习

前言:最近买了一个小米蓝牙自拍杆去泰山玩儿,用了好好的,突然想看下蓝牙自拍杆原理是什么,百度学习了一下。

demo: https://github.com/happyjiatai/demo_csdn/tree/master/demo_47_bluetoothzipaigan

1. 蓝牙自拍杆原理

说蓝牙自拍杆原理之前,先科普一下相机拍照的快捷键,音量键作为快捷键是可以设置功能的,比如小米mix2 是可以作为快门、变焦和音量的,如下图所示。这里强调一点,使用蓝牙自拍杆,必须将音量键功能设为快门,这个菜单是和蓝牙自拍杆的拍照功能相对应的。

然后,蓝牙自拍杆其实就是用的音量键作为快门快捷键的特性才产生作用的。比如如果不在拍照界面,点击蓝牙拍照按钮,会把调节音量的进度条调出来。这可以证明蓝牙自拍杆是操作音量键起到效果的。

2. 原理的代码层面分析

第一部分主要从使用角度上分析了蓝牙自拍杆的原理,第二部分再从代码层面上验证或者证明一下。

我写了一个小的demo

  1. package com.example.demo_47_bluetoothzipaigan;
  2. import android.os.Bundle;
  3. import android.support.v7.app.AppCompatActivity;
  4. import android.util.Log;
  5. import android.view.KeyEvent;
  6. public class MainActivity extends AppCompatActivity {
  7. private static final String TAG = 'jiatai';
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.activity_main);
  12. }
  13. @Override
  14. public boolean onKeyDown(int keyCode, KeyEvent event) {
  15. Log.d(TAG, 'onKeyDown : '+ keyCode);
  16. switch (keyCode) {
  17. case KeyEvent.KEYCODE_VOLUME_UP:
  18. Log.d(TAG, 'KeyEvent.KEYCODE_VOLUME_UP');
  19. return true;
  20. case KeyEvent.KEYCODE_VOLUME_DOWN:
  21. Log.d(TAG, 'KeyEvent.KEYCODE_VOLUME_DOWN');
  22. return true;
  23. default:
  24. break;
  25. }
  26. return super.onKeyDown(keyCode, event);
  27. }
  28. @Override
  29. public boolean onKeyUp(int keyCode, KeyEvent event) {
  30. //Log.d(TAG, 'onKeyUp', new RuntimeException());
  31. Log.d(TAG, 'onKeyUp : '+ keyCode);
  32. return super.onKeyUp(keyCode, event);
  33. }
  34. }

这个demo很简单,主要就是监控手机按键的事件下发,看下点击蓝牙自拍杆的拍照按钮后的log打印

而66和24这两个event对应的分别是enter键和音量上键

  1. /** Key code constant: Volume Up key.
  2. * Adjusts the speaker volume up. */
  3. public static final int KEYCODE_VOLUME_UP = 24;
  4. /** Key code constant: Enter key. */
  5. public static final int KEYCODE_ENTER = 66;

从蓝牙界面也可以看出自拍杆其实是作为一个键盘来对待的,这个键盘的按键下发其实就是下发enter key和volume up key,volume up key等效于用户手点音量上键。相机的onKeyUp接收到对应事件进行相应设置的逻辑处理,一般是快门,也就是拍照。

3. 总结

蓝牙自拍杆简单来说功能等效于手动按下音量上键,它们在原理上都是下发了volume up的event给相机进行处理,相机接收到这个event就按照相机的音量键设置来实现对应的功能。所以我们想要蓝牙自拍杆起拍照的作用,必须将音量键设为快门的快捷键。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
监听音量键
3.2 基于回调的事件处理机制
android 键值控制显示屏 TP调试
android 如何监听返回键_melody
android 耳机线控的实现方法
Android按键事件传递流程(二)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服