سؤال

هل حصل أي شخص على البث المتعدد للعمل على Android 2.2 ، وتحديداً JMDNs للكشف عن خدمة Bonjour. هناك العديد من الأسئلة والأجوبة من الإطار الزمني Android 1.5-> 2.0 ، بما في ذلك على Stackoverflow ، والتي تشير إلى مستويات مختلفة من النجاح ، وخلل في تعقب الأخطاء الذي يشير إلى أنه تم إصلاحه ، ومغلق ، مقابل 2.2 (http://code.google.com/p/android/issues/detail؟id=2323). لقد جربت رمز المصدر "Tunecontrol" ، لكن ذلك نجح على ~ 1.5 ولم يتم تحديثه ، ولا يعمل بالنسبة لي على 2.2.

لذلك ، الأسئلة ... 1) أي واحد شوهدت أعمال البث المتعدد على 2.2 ، وتحديداً JMDNs ، وتحديدا لاكتشاف خدمة Bonjour؟

2) ما هو ضروري في التعليمات البرمجية لجعل هذا العمل؟

أنا أستخدم الأذونات المناسبة:

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

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

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

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

أحصل على قفل البث المتعدد:

WifiManager wifi = (WifiManager)getSystemService( Context.WIFI_SERVICE );
if(wifi != null)
{
    MulticastLock mcLock = wifi.createMulticastLock("mylock");
    mcLock.acquire();
...

ثم حاول بدء JMDNS للبحث عن الخوادم:

    mdns = JmDNS.create(addr, HOSTNAME);
    jmdns.addServiceListener(TOUCH_ABLE_TYPE, listener);
    jmdns.addServiceListener(DACP_TYPE, listener);
    ...

المستمع لا يرى أي خدمات. لقد تحقق من استخدام Wireshark من إرسال حزم الطلب ، وأن الخادم يستجيب ، لكن حزمة الاستجابة لم يتم رؤيتها مطلقًا بواسطة رمز مستمع المقبس في مكتبة JMDNS.

لذا ... هل أفتقد شيئًا؟ هل هذا لا يزال خطأ؟ هل حصل أي شخص على أي شيء حتى عن بُعد للعمل ؟؟؟

هل كانت مفيدة؟

المحلول

إلى (بوقاحة) الإجابة على سؤالي ، تم تقديم مزيد من المعلومات في http://code.google.com/p/android/issues/detail؟id=2917#c48 من قبل شخص آخر. للأجيال القادمة ، كما يقولون ، هنا هو Brian.ro ...@gmail.com إجابة ...

"لقد قضيت الكثير من الوقت في تصحيح مشكلات MDNS مع JMDNs على Evo و HTC Hero (CDMA). ما وجدته هو أنه يبدو أن هناك مرشحًا في السائق اللاسلكي Broadcom على EVO (ومنذ ذلك الحين" أنا " M الحصول على reprt متماثل من مستخدم HTC Desire - مع نفس مجموعة الشرائح ، ويفترض أن الهاتف أيضًا). الفلتر ، افتراضيًا ، يحظر أي حركة مرور لاثمك أو شبك .

يبدو أن المشكلة هي WPA_Supplicant على EVO لا تدعم إزالة تلك المرشحات عندما تحصل على الإرسال المتعدد. (تحقق من إخراج السجل مباشرة بعد الحصول على القفل وسترى ما أعنيه). لسوء الحظ ، ما حدث هو أن بائعي الأجهزة لديهم دعم مجزأ من البث المتعدد .... :( "

لذلك ... يبدو أن هذه مشكلة في الجهاز أكثر من مشكلة الترميز. يا. :( إذا حصلت على فرصة لاختبار على جهاز آخر ...

نصائح أخرى

لقد قمت ببعض الأبحاث في هذا ، وأعتقد أنها مشكلة مع Android بشكل عام ، ومثبتة في أو حول Android 2.3.7.

إنها قصصية بعض الشيء ، لكن هذا ما اختبرته:

  • HTC Desire ، 2.2 ، الأسهم: فشل
  • HTC Desire ، 2.3.7 ، cyanogenmod: النجاح
  • Motorola Milestone ، 2.1-update1: FAIL
  • HTC Desire S ، 2.3.3: فشل
  • أيقر أيقونة A501 ، 3.2.1: النجاح
  • Samsung شيء ، 2.3.3: فشل
  • HTC Legend ، 2.2 أعتقد: فشل

عندما أقول "فشل" ، في الواقع ، كانوا جميعًا قادرين على إرسال رسائل البث المتعدد إلى أجهزة "النجاح" ، لكنهم لم يتلقوا أي شيء باستثناء رسائلهم الخاصة - كما يصف Jldupont.

لاحظ أن تطبيق البث المتعدد IM كوتشات متاح فقط لـ 2.3.7 فصاعدًا ، على الرغم من أنه يمكن تصنيعه لتجميع ما يصل إلى 2.1 ، مما يعطي المزيد من المصداقية لهذه النظرية.

أعتقد أن السبب الآخر هو عدم دعم AP الخاص بك.

آخر: إرسال/استلام/استلام/من Android

يجب على جهاز الكمبيوتر الخاص بك استخدام WiFi فقط ، أفضل من جميع الشبكات الأخرى

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top