BM353硬件接口文档
1、按键
参照方式如以下:
//注册广播
Internt intent = new Intent(“android.intent.action.KEY_EVENT”);
Intent.putExtra(Intent.EXTRA_KEY_EVENT,event);
mCOntext.sendBroadcast(intent,null);
//接收按键广播
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch(keyCode) {
case KeyEvent.KEYCODE_MEDIA_REWIND:
/*Log.d("test", "重点标记键");*/
Toast.makeText(this,"一键标记键(FN 下面第一个)",Toast.LENGTH_SHORT).show();
break;
//键值
int KEYCODE_MEDIA_REWIND= 89;
int KEYCODE_MEDIA_RECORD = 130;
int KEYCODE_DVR = 173;
int KEYCODE_CAMERA = 27;
int KEYCODE_FUNCTION = 119;
int KEYCODE_ALL_APPS = 284;
int KEYCODE_THUMBS_UP = 286;
键值定义:
|
KEYCODE_MEDIA_REWIND |
重点标记键 |
|
KEYCODE_MEDIA_RECORD |
录像键 |
|
KEYCODE_DVR |
录音键 |
|
KEYCODE_CAMERA |
拍照键 |
|
KEYCODE_FUNCTION |
FN,自定义键 |
|
KEYCODE_ALL_APPS |
SOS 键 |
|
KEYCODE_THUMBS_UP |
PTT键,对讲按键 |
2、设备相关灯
需要通过AIDL文件来控制,注意AIDL包名
1:初始化
mDeviceManager= DeviceManager.getInstance();}
2:通过DeviceManager 控制
LED指示灯 (国标要求:开机后绿色常亮;摄录状态红色常亮;录音状态黄灯常亮;)
private int redLight=0xffff0000;//红色
private int greenLight=0xff00ff00;//绿色
private int yellowLight= 0xffff00;//橙色
private int blueLight=0xff0000ff;//蓝色
|
打开红灯 |
mDeviceManager.setLedColor(redLight,false) |
|
关闭红灯 |
mDeviceManager.setLedColor(0,false) |
|
打开绿灯 |
mDeviceManager.setLedColor(greenLight,false) |
|
关闭绿灯 |
mDeviceManager.setLedColor(0,false) |
|
打开蓝灯 |
openLight("blue"); |
|
关闭蓝灯 |
mDeviceManager.setLedColor(0,false) |
|
打开黄灯 |
mDeviceManager.setLedColor(yellowLight,false); |
|
关闭黄灯 |
mDeviceManager.setLedColor(0,false) |
激光灯
|
打开激光灯 |
mDeviceManager.setLaserLightEnabled(true) |
|
关闭激光灯 |
mDeviceManager.setLaserLightEnabled(false) |
红外灯与IR-CUT (同时摄像头设置黑白模式)
|
打开红外灯 |
mDeviceManager.setInfraredBrightness(80) |
|
关闭红外灯 |
mDeviceManager.setInfraredBrightness(0) |
|
打开IR-CUT |
mDeviceManager. setIRCutEnabled(true)
|
|
关闭IR-CUT |
mDeviceManager. setIRCutEnabled(false) |
红蓝警示灯
|
打开红蓝警示灯 |
mDeviceManager.setWarningLightEnabled(true); |
|
关闭红蓝警示灯 |
mDeviceManager.setWarningLightEnabled(false); |
3、摄像头
切换摄像头 (设备三个摄像头)
|
主后摄像头 |
=CameraOpen(0); |
|
前摄像头 |
=CameraOpen(1); |
|
副后摄像头 |
=CameraOpen(2); |
参照方式如以下:
private void initCamera()
{
Camera mCamera = Camera.open();
Camera.Parameters mParameters = mCamera.getParameters();
mParameters.setPictureFormat(PixelFormat.JPEG);
mCamera.setParameters(mParameters);
mCamera.setPreviewDisplay(mSurfaceHolder);
mCamera.startPreview();
mCamera.takePicture(null, null , mJpegCallback);
设置Camera模式 (夜景模式)
Boolean ste03
true:打开夜景模式
false:关闭夜景模式
if (ste03) {
//开灯
mDeviceManager.setInfraredBrightness(100);
mDeviceManager.setIRCutEnabled(ste03);
} else {
//关灯
mDeviceManager.setInfraredBrightness(0);
mDeviceManager.setIRCutEnabled(ste03);
}
boolean MIC1
boolean MIC2
boolean MIC3
true:打开
false:关闭
boolean aa = mDeviceManager.switchMic(MIC1);//主MIC
boolean bb = mDeviceManager.setMic2Enable(MIC2); //副MIC
boolean cc = mDeviceManager.setMic3Enable(MIC3); //柱状MIC
5、SN号获取值
Besovideo:
示例:
String[] propertys = {
"persist.sys.lov.serial"
};
for (String key : propertys) {
// String v = android.os.SystemProperties.get(key);
String v = getAndroidOsSystemProperties(key);
// Log.e("", "get " + key + " : " + v);
Toast.makeText(this,v,Toast.LENGTH_SHORT).show();
}
方法:
static String getAndroidOsSystemProperties(String key) {
Method systemProperties_get = null;
String ret;
try {
systemProperties_get = Class.forName("android.os.SystemProperties").getMethod("get",
String.class);
if ((ret = (String) systemProperties_get.invoke(null, key)) != null)
return ret;
} catch (Exception e) {
e.printStackTrace();
return null;
}
return "";
}
6、Android 通用接口
/**
* 打开闪光灯
*/
public void openFlashLight() {
if (camera.getCamera() == null) {
return;
}
Camera.Parameters parameter = camera.getCamera().getParameters();
parameter.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
camera.getCamera().setParameters(parameter);
}
/**
* 关闭闪光灯
*/
public void closeFlashLight() {
if (camera == null) {
return;
}
Camera.Parameters parameter = camera.getCamera().getParameters();
parameter.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
camera.getCamera().setParameters(parameter);
}
Besovideo:
开机
// 返回开机时间,单位微妙
long bootTime() {
return System.currentTimeMillis() - SystemClock.elapsedRealtime();
}
关机:
actiton= Intent.ACTION_SHUTDOWN(系统广播)
|
key |
value |
|
"shutdown_time"(关机时间) |
类型:long 关机时间 |
判断是否打开了飞行模式
boolean isAirplaneModeOn(){
return Settings.System.getInt(context.getContentResolver(),
Settings.System.AIRPLANE_MODE_ON, 0) == 1 ? true : false;
}
打开/关闭飞行模式
Boolean isairplanemode
true:打开飞行模式
false:关闭飞行模式
mDeviceManager.setAirplaneModeOn(isairplanemode);
获取GPS 状态
boolean isGPSEnabled(){
LocationManager locationManager
= (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);
boolean gps = locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
boolean network = locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER);
if (gps || network) {
return true;
}
return false;
}
打开/关闭 GPS(需要权限)
Boolean isGPS
true:打开GPS
false:关闭GPS
mDeviceManager.setGPSEnabled(isGPS);
获取蓝牙 状态
boolean isBluetoothEnabled(){
BluetoothAdapter blueadapter=BluetoothAdapter.getDefaultAdapter();
blueadapter.isEnabled();
}
boolean setBluetoothEnabled(boolean isEnabled)
BluetoothAdapter blueadapter=BluetoothAdapter.getDefaultAdapter();
if(isEnabled){
blueadapter.enable();//打开蓝牙
}else{
blueadapter.disable();//关闭蓝牙
}
}
获取WIFI 状态
boolean isWifiEnabled(){
WifiManager manager =(WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
manager.isWifiEnabled();
}
boolean setWifiEnabled(boolean isEnabled){
WifiManager manager =(WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
manager.setWifiEnabled();
}
Besovideo:
Boolean islock;
if(islock)
{
//锁屏
mDeviceManager.lockDevice();
}
else
{//不锁屏
mDeviceManager.unlockDevice();
}
Besovideo:
boolean reboot
true重启设备
false关机
mDeviceManager.shutdown(reboot);
同步时间
Besovideo:
long time2 = DeviceManager.getInstance().getBootTime();
mDeviceManager.setTime(time2+100000);
开启U盘模式
|
boolean get UMSOpened(); |
判断是否打开U盘传输模式 |
无参数 |
返回值类型:boolean true:已打开U盘 false:已关闭U盘 |
|
boolean openOrCloseUMS(boolean enable); |
打开/关闭U盘传输模式 |
boolean enable true:打开U盘 false:关闭U盘 |
返回值类型:boolean true:执行成功 false:执行失败 |
Besovideo:
判断:mDeviceManager.getUMOpened();
打开关闭:mDeviceManager.openOrCloseUMS(isUdesk);
