HDMI 장치가 Android 장치에 연결되어 있는지 여부를 감지해야합니다. 이것을 위해 BroadcastReceiver를 사용 중이며이를 감지 할 수도 있습니다. 그러나 BroadcastReceiver를 사용하여 응용 프로그램을 시작하기 전에 HDMI 장치가 연결되어있는 경우 시나리오를 처리 할 수 없습니다. 이 경우 BroadcastReceiver는 HDMI 장치가 연결되어 있는지 여부를 찾을 수 없습니다. HDMI 장치가 연결되어 있는지 여부를 알 수있는 방법이 있습니까?Android에서 HDMI 기기 연결 상태를 확인하는 방법은 무엇인가요?
답변
나는 다른 곳에서 다른 답변을 사용하여이 일부를 내놓았다 :
/**
* Checks device switch files to see if an HDMI device/MHL device is plugged in, returning true if so.
*/
private boolean isHdmiSwitchSet() {
// The file '/sys/devices/virtual/switch/hdmi/state' holds an int -- if it's 1 then an HDMI device is connected.
// An alternative file to check is '/sys/class/switch/hdmi/state' which exists instead on certain devices.
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);
int switchValue = switchFileScanner.nextInt();
switchFileScanner.close();
return switchValue > 0;
} catch (Exception e) {
return false;
}
}
자주 확인하는 경우, 당신은 결과를 저장하고 @의 hamen의 리스너를 업데이트 할 것 .
동일한 문제가 여기에 있습니다. 기기가 HDMI 커넥터를 통해 연결되어있는 경우
응용 프로그램은 방송 의도를 듣고에 의해 감지 할 수 있습니다 : 일부 구글 - ING는 http://developer.sonymobile.com/wp/2012/05/29/how-to-use-the-hidden-hdmi-api-tutorial/에서 그러나, 모토로라 이외의 다른 제조 업체와 많은 희망이 아니라 나에게 말했다 "COM 그 다음 1의 경우
에 연결 .sonyericsson.intent.action.HDMI_EVENT는 "나는 결국이 나왔다. S3 및 S4에서 작동합니다. 그것은 4 + 안드로이드 버전과 함께 작동합니다.
public class HdmiListener extends BroadcastReceiver {
private static String HDMIINTENT = "android.intent.action.HDMI_PLUGGED";
@Override
public void onReceive(Context ctxt, Intent receivedIt) {
String action = receivedIt.getAction();
if (action.equals(HDMIINTENT)) {
boolean state = receivedIt.getBooleanExtra("state", false);
if (state) {
Log.d("HDMIListner", "BroadcastReceiver.onReceive() : Connected HDMI-TV");
Toast.makeText(ctxt, "HDMI >>", Toast.LENGTH_LONG).show();
} else {
Log.d("HDMIListner", "HDMI >>: Disconnected HDMI-TV");
Toast.makeText(ctxt, "HDMI DisConnected>>", Toast.LENGTH_LONG).show();
}
}
}
}
의 AndroidManifest.xml 응용 프로그램 태그에이 필요합니다 :
<receiver android:name="__com.example.android__.HdmiListener" >
<intent-filter>
<action android:name="android.intent.action.HDMI_PLUGGED" />
</intent-filter>
</receiver>
이것은 hdmi가 연결되었거나 연결이 끊어 졌는지 감지하는 데 도움이되었지만 hdmi가 연결되어 있는지를 모르는 경우 앱을 실행합니다. – jch
당신은 /sys/class/display/display0.hdmi/connect
에서 데이터를 얻을 수 있습니다. 파일 내용이 0
인 경우 HDMI가 연결되지 않으며, 그렇지 않은 경우 1
인 경우 HDMI가 연결됩니다.
try {
File file = new File("/sys/class/display/display0.hdmi/connect");
InputStream in = new FileInputStream(file);
byte[] re = new byte[32768];
int read = 0;
while ((read = in.read(re, 0, 32768)) != -1) {
String string = new String(re, 0, read);
Log.v("String_whilecondition", "HDMI state = " + string);
result = string;
}
in.close();
} catch (IOException ex) {
ex.printStackTrace();
}
이 경우 장치가 루팅되어야한다고 가정합니까? – Adi
나는 장치를 뿌리 뽑을 필요가 없다고 생각한다. –
- 1. 연결 상태를 확인하는 방법은 무엇입니까?
- 2. Android에서 통화 코드의 유효성을 확인하는 방법은 무엇인가요?
- 3. HDMI 연결 감지
- 4. Android OS 버전을 확인하는 방법은 무엇인가요?
- 5. android에서 백그라운드 데이터가 사용 설정되어 있는지 확인하는 방법은 무엇인가요?
- 6. Android에서 Wi-Fi 데이터 사용량 만 확인하는 방법은 무엇인가요?
- 7. Android에서 사용 중지 된 푸시 알림을 확인하는 방법은 무엇인가요?
- 8. Android에서 기기 대 기기 통신
- 9. Android에서 RTMP를 스트리밍하는 방법은 무엇인가요?
- 10. Android에서 활동을 결합하는 방법은 무엇인가요?
- 11. 삽입 태그를 확인하는 방법은 무엇인가요?
- 12. Google지도가 완전히로드되었는지 확인하는 방법은 무엇인가요?
- 13. Android에서 네트워크 연결 상태를 어떻게 모니터링합니까?
- 14. 내 WCF 서비스의 연결 상태를 확인하는 방법
- 15. Apache NMS - 연결 상태를 확인하는 방법
- 16. android에서 기기 전화 번호 확인
- 17. 응용 프로그램 시작시 sql 연결 상태를 확인하는 방법은 무엇입니까?
- 18. 3G 연결을 통해 인터넷 연결 상태를 확인하는 방법은 무엇입니까?
- 19. jdbc 연결을 사용하여 java에서 연결 상태를 확인하는 방법은 무엇입니까?
- 20. Android 앱과 호환되는 기기 (호환되지 않음)를 찾는 방법은 무엇인가요?
- 21. Resultset 상태를 확인하는 방법은 무엇입니까?
- 22. iOS 기기 생성 확인
- 23. Android에서 기기 잠금
- 24. Android. 블루투스 기기 연결
- 25. android에서 기기 방향을 변경하는 방법은 무엇입니까?
- 26. YouTube 동영상을 Android에서 재생하는 방법은 무엇인가요?
- 27. Android에서 초대형 화면을 지원하는 방법은 무엇인가요?
- 28. Android에서 반복 가능한 날짜를 선택하는 방법은 무엇인가요?
- 29. Android에서 ListView의 스크롤을 사용 중지하는 방법은 무엇인가요?
브로드 캐스트 리시버 코드를 공유하십시오. Motorola 장치에서만 작동하도록 설계되었습니다 ... ?? –
[This] (https://stackoverflow.com/a/21383495/1921481) 대답이 나를 위해 효과가 있었지만 의도를 바꾸기 만하면되었습니다. "android.intent.action.HDMI_PLUGGED"대신 "android.intent.action.HDMI_HW_PLUGGED"여야합니다. (이 답변에 대한 의견이 더 많았 으리라 생각했지만 내 평판으로 인해 댓글을 달 수 없습니다.) –