HDMI状态不会出现在android marshmallow中

时间:2017-09-26 09:19:23

标签: android android-6.0-marshmallow hdmi

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

2 个答案:

答案 0 :(得分:0)

按照以下步骤

首先,将存储权限放在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条件下完成任务。

答案 1 :(得分:0)

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

感谢你。