HDMI 状态未进入 android 棉花糖

HDMI status is not coming in android marshmallow

低于 android 6.0 它工作完美,但在 android marshmallow HDMI 状态没有出现

private boolean isHdmiSwitchSet() {
File switchFile = new File("/sys/devices/virtual/switch/hdmi/state");
    if (!switchFile.exists()) {
        switchFile = new File("/sys/class/switch/hdmi/state");
    }
    try {
        Scanner switchFileScanner = new Scanner(switchFile);
        Toast.makeText(MainActivity.this,"HDMI Status"+switchFileScanner.nextInt(),Toast.LENGTH_LONG).show();
        int switchValue = switchFileScanner.nextInt();
        switchFileScanner.close();
        return switchValue > 0;
    } catch (Exception e) {
        return false;
    }
}

按照以下步骤操作,

首先,在AndroidManifest文件中加入存储权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

二、访问文件前检查用户是否允许权限:

public boolean checkPermissionForWRITE_STORAGE(){
        int result = ContextCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE);
        if (result == PackageManager.PERMISSION_GRANTED){
            return true;
        } else {
            return false;
        }
    }

第三,在 true 条件下完成任务。

我找到了解决方案,如果我们像 android 系统应用程序一样编译 android:sharedUserId="android.uid.system" 它的工作完美.. .

谢谢你。