
前言: 最近,我买了一个小米蓝牙自拍杆去台山玩. 我很好用. 我突然想看看蓝牙自拍杆的原理是什么. 百度学到了一点.
演示:
在讨论蓝牙自拍杆的原理之前,让我们首先普及一下相机的快捷键来拍照. 音量键可用作设置功能的快捷键. 例如,小米mix2可以用作快门,缩放和音量,如下所示. 在此强调,使用蓝牙自拍杆时,必须将音量键功能设置为快门. 此菜单对应蓝牙自拍杆的功能.

然后,蓝牙自拍杆实际上将音量键用作快门快捷键的功能. 例如,如果您不在界面中,则单击“蓝牙”按钮将弹出进度条以调节音量. 可以通过操作音量键来证明蓝牙自拍杆可以正常工作.

第一部分主要从使用角度分析蓝牙自拍杆的原理蓝牙自拍杆,第二部分从代码级别进行验证或证明.
我写了一个小演示
package com.example.demo_47_bluetoothzipaigan;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.KeyEvent;
public class MainActivity extends AppCompatActivity {
private static final String TAG = "jiatai";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
Log.d(TAG, "onKeyDown : "+ keyCode);
switch (keyCode) {
case KeyEvent.KEYCODE_VOLUME_UP:
Log.d(TAG, "KeyEvent.KEYCODE_VOLUME_UP");
return true;
case KeyEvent.KEYCODE_VOLUME_DOWN:
Log.d(TAG, "KeyEvent.KEYCODE_VOLUME_DOWN");
return true;
default:
break;
}
return super.onKeyDown(keyCode, event);
}
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
//Log.d(TAG, "onKeyUp", new RuntimeException());
Log.d(TAG, "onKeyUp : "+ keyCode);
return super.onKeyUp(keyCode, event);
}
}

这个演示非常简单,主要是监视手机按键事件,并在单击蓝牙自拍杆的相机按钮后查看日志打印
66个事件和24个事件分别与Enter键和提高音量键

/** Key code constant: Volume Up key.
* Adjusts the speaker volume up. */
public static final int KEYCODE_VOLUME_UP = 24;
/** Key code constant: Enter key. */
public static final int KEYCODE_ENTER = 66;
从蓝牙接口也可以看出,自拍杆实际上被当作键盘. 该键盘的键释放实际上是输入键和音量增大键. 增大音量键等同于用户按增大音量键. . 相机的onKeyUp接收相应的事件并执行相应的设置逻辑处理,该设置通常是快门,即拍照.
简单来说,蓝牙自拍杆功能等同于手动按下调高音量按钮. 原则上蓝牙自拍杆,它们将音量升高事件发送到相机进行处理. 相机接收到此事件,并根据相机的音量键进行设置. 实现相应的功能. 因此,我们要让蓝牙自拍杆拍照,必须将音量键设置为快门的快捷键.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shouji/article-272947-1.html
祖宗留给我们的江海疆土绝不容侵犯
马云这话不对