Bir HDMI cihazının bağlı olup olmadığını veya Android cihazıma bağlı olup olmadığını tespit etmem gerekiyor. Bunun için bir BroadcastReceiver kullanıyorum ve bunu da algılayabiliyorum. Ancak BroadcastReceiver Uygulamamın başlamasından önce bile HDMI cihazı bağlandığında senaryoyu kullanamıyorum. Bu durumda BroadcastReceiver, herhangi bir HDMI cihazının bağlı olup olmadığını bulamıyor. Herhangi bir HDMI cihazının bağlı olup olmadığını öğrenmek için herhangi bir yol var mı?Android'de HDMI cihazı bağlantı durumu nasıl kontrol edilir?
cevap
ben başka bir yerden diğer cevaplar kullanarak bu ve bazı ile geldi:
/**
* 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;
}
}
sık sık kontrol ediyorsanız, sonucunu saklamak ve @ Hamen en dinleyici ile güncelleyin isterdim .
Aynı sorun burada. Cihaz HDMI konektör üzerinden bağlanmak durumunda
bir uygulama yayın niyet dinleyerek algılayabilir:: Bazı google-ing http://developer.sonymobile.com/wp/2012/05/29/how-to-use-the-hidden-hdmi-api-tutorial/ gelen ancak Motorola yanı sıra diğer üreticilerle fazla umut olmadığını mı söyledi "com daha sonra 1 ise
çek dosyası/sys/class/switch/HDMI/devlet, bir HDMI
, bu cihazın köklenmesi gerektiğini varsayalım? – Adi
no, aygıtın köklenmesine gerek yok –
bağlı olduğundan .sonyericsson.intent.action.HDMI_EVENT" sonunda bu çıktı. S3 ve S4 üzerinde çalışıyor. Herhangi bir 4+ Android sürümü ile çalışmalıdır.
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 uygulama etiketine bu ihtiyacı:
<receiver android:name="__com.example.android__.HdmiListener" >
<intent-filter>
<action android:name="android.intent.action.HDMI_PLUGGED" />
</intent-filter>
</receiver>
Bu, hdmi'nin bağlı veya bağlantısının kesildiğini algılamamda bana yardımcı oldu, ancak uygulamayı çalıştırmadan önce hdmi'nin bağlı olduğunu bilmemek. – jch
Sen /sys/class/display/display0.hdmi/connect
veri alabilir. Dosyanın içeriği 0
ise, HDMI bağlı değildir, aksi halde 1
ise, HDMI bağlanır.
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();
}
, cihazın köklenmesi gerektiğini varsayar mı? – Adi
Cihazın köklenmesine gerek olmadığını düşünüyorum. –
- 1. AVPlayer durumu nasıl kontrol edilir?
- 2. Hikaye panosunun durumu nasıl kontrol edilir?
- 3. Taşıma durumu nasıl kontrol edilir? Rails
- 4. Geçerli iş parçacığının apart durumu nasıl kontrol edilir?
- 5. FsUnit ile ayrımcılık yapılan bir kuruluşun durumu nasıl kontrol edilir?
- 6. VM'nin pyvmomi kullanarak önyükleme durumu nasıl kontrol edilir?
- 7. Spark uygulamalarının durumu komut satırından nasıl kontrol edilir?
- 8. iphone SDK - 2 kontrol cihazı nasıl bağlanır?
- 9. androidde openssl nasıl kurulur
- 10. Redis sunucusuna bir bağlantı kurulduğunda ioredis ile nasıl kontrol edilir?
- 11. İşlemin durumu kontrol etme
- 12. Automapper'ın durumu göz ardı edilir
- 13. Alarmın ayarlanıp ayarlanmadığı nasıl kontrol edilir
- 14. Çift ekran için HDMI çıkışı programlama
- 15. Perl'de çoklu desen eşleşmesi nasıl kontrol edilir
- 16. VB6 ADO Bağlantısı - Transaction'da Nasıl Kontrol Edilir?
- 17. Enum örneği temel sınıfını nasıl kontrol edilir?
- 18. Yakınlık algılayıcısı nasıl kontrol edilir?
- 19. Ubuntu'da Apache2 nasıl kontrol edilir?
- 20. umbraco'da çerez nasıl kontrol edilir?
- 21. Hazır animasyon nasıl kontrol edilir?
- 22. Medya birimi nasıl kontrol edilir?
- 23. Swift'de launchOptions nasıl kontrol edilir?
- 24. Öğenin tıklama işleyicisi varsa nasıl kontrol edilir?
- 25. SQL satırının değeri sürekli nasıl kontrol edilir?
- 26. Erişim Kapıcı hareket et Rails Kontrol Cihazı
- 27. Başka bir kontrol cihazı arayabilir mi?
- 28. POST alan basit kontrol cihazı bulunamadı
- 29. error occored Bağlantı kapatılmadı Bağlantı mevcut durumu açık
Yayın alıcı kodunuzu paylaşın. Motorola cihazları için çalışmak için tasarlanmıştır ... –
[This] (https://stackoverflow.com/a/21383495/1921481) cevap benim için çalıştı, sadece niyetini değiştirmek zorunda kaldı. "Android.intent.action.HDMI_PLUGGED" yerine "android.intent.action.HDMI_HW_PLUGGED" olmalıdır. (Bu cevaba daha fazla yorum yapılması gerekiyordu ama itibarım benim yorum yapmama izin vermiyor). –