美文网首页
智能设备接口与实体按键接入

智能设备接口与实体按键接入

作者: 玖玖君 | 来源:发表于2021-03-17 14:07 被阅读0次

1.根据节点来获取设备信息

1.首先要看文档 获取节点信息的路径(读取)

/**
     * 获取节点,根据节点地址来获取
     */
    private static String getString(String path) {
        String prop = "waiting";// 默认值
        try {
            BufferedReader reader = new BufferedReader(new FileReader(path));
            prop = reader.readLine();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return prop;
    }

2.根据要求修改节点修改节点的数据

private static void Writer(String buf){
    final String WAKE_PATH = "/sys/bus/platform/devices/light_laser/enable";
        try {
            BufferedWriter bufWriter = null;
            bufWriter = new BufferedWriter(new FileWriter(WAKE_PATH));
            bufWriter.write(buf);  // 写操作
            bufWriter.close();

            Log.d(TAG,"功能已激活 angle " + getString(WAKE_PATH));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

2 通过广播来响应实体按键

首先获取需要订阅的广播类型 例如: "android.intent.action.SIDE_KEY_INTENT"

 IntentFilter keyFilter = new IntentFilter("android.intent.action.SIDE_KEY_INTENT");
 KeyReceiver keyReceiver = new KeyReceiver();
 registerReceiver(keyReceiver, keyFilter);

然后根据返回值 返回数据,例如我的返回值为"key_code"
根据按键的值来进行监听,来实现想要的效果就可以了

 /*记录仪的按键监听*/
    private class KeyReceiver extends BroadcastReceiver {
        AudioManager audio = (AudioManager) getSystemService(Service.AUDIO_SERVICE);
        int Light_laser = 0;

        @Override
        public void onReceive(Context context, Intent intent) {
            int key_code = intent.getIntExtra("key_code", 0);
            /*实体键开启闪光灯*/
            if (key_code == LIGHT) {
                mMediaStream.IsOpen();
                /*音量调节*/
            } else if (key_code == AUDIO_UP) {
                audio.adjustStreamVolume(
                        AudioManager.STREAM_MUSIC,
                        AudioManager.ADJUST_RAISE,
                        AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
                /*音量调节*/
            } else if (key_code == AUDIO_DOWN) {
                audio.adjustStreamVolume(
                        AudioManager.STREAM_MUSIC,
                        AudioManager.ADJUST_LOWER,
                        AudioManager.FLAG_PLAY_SOUND | AudioManager.FLAG_SHOW_UI);
            } else if (key_code == LIGHT_LASER) {
                Light_laser++;
                if (Light_laser % 2 == 0) {
                    mMediaStream.IsOpen_light_laser("0");
                }else {
                    mMediaStream.IsOpen_light_laser("1");
                }
            }
//            Log.e("KeyCode","哪个键按下了:"+key_code);
        }
    }

文章很短,路还漫长,大家好,我是玖玖君,一个帅气与才华并存的男人,我们下期再见。

相关文章

网友评论

      本文标题:智能设备接口与实体按键接入

      本文链接:https://www.haomeiwen.com/subject/khxecltx.html