BM353硬件接口文档

发布时间: 2026-05-22 18:11:02

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);

}

 

4、麦克风切换

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

 

                 

5SN号获取值  

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 "";
}

 

 

 

6Android 通用接口

 

闪光灯

 

/**

 * 打开闪光灯

 */

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

 

获取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

 

获取WIFI 状态

 

boolean isWifiEnabled(){

    WifiManager manager =(WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);

    manager.isWifiEnabled()

}

 

打开/关闭WIFI

 

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);