Android: محاكاة واي فاي في المحاكي؟


2 Answers

نظرًا لأن هذا يبدو سؤالًا شائعًا ، فسأذهب إلى الأمام وأضيف إجابة محدثة. لا يزال SDK لا يدعم محاكاة WiFi ، ولكن Genymotion يعمل بشكل افتراضي مع WiFi ، لذا يمكنك استخدام ذلك لتطوير / اختبار التطبيقات باستخدام وظيفة WiFi محددة.

Question

أرغب في التحقق من تطبيقي ما إذا كان الجهاز مزودًا باتصال WiFi ، ولكن من أجل القيام بذلك ، يجب أولاً العثور على طريقة للحصول على "WiFi" في المحاكي. كل ما عليك هو الانتقال إلى الإعدادات -> عناصر التحكم اللاسلكية -> يشير Wifi إلى تعذر تشغيل شبكة Wi-Fi ، بينما يقول logcat :

E/WifiService(  566): Failed to load Wi-Fi driver.
D/SettingsWifiEnabler(  695): Received wifi state changed from Unknown to Enabling
D/SettingsWifiEnabler(  695): Received wifi state changed from Enabling to Unknown

كيف يمكنني محاكاة اتصال WiFi في المحاكي؟




من الناحية النظرية ، لينكس (الروبوت الأساسي النواة) لديه سائق mac80211_hwsim ، الذي يحاكي واي فاي. يمكن استخدامه لإعداد العديد من أجهزة WiFi (نقطة القبول ، وجهاز WiFi آخر ، وما إلى ذلك) ، والتي ستشكل شبكة WiFi.

من المفيد اختبار برامج WiFi ضمن نظام التشغيل Linux. ربما ، حتى في ظل وضع المستخدم لينكس أو غيرها من "مربعات" افتراضية معزولة مع لينكس.

من الناحية النظرية ، يمكن استخدام برنامج التشغيل هذا للاختبارات في أنظمة Android حيث لا يتوفر لديك جهاز WiFi حقيقي (أو لا ترغب في استخدامه) ، وأيضًا في بعض أنواع محاكيات android. ربما ، يمكن للمرء أن يتمكن من استخدام برنامج التشغيل هذا في android-x86 ، أو - للاختبار - في android-x86 يعمل في VirtualBox.




ربما لا يوجد بديل عن الاختبار على جهاز حقيقي ، ولكن إذا كنت تبحث عن حالة اختبار جيدة بما فيه الكفاية في المحاكي ، فتجرب Fake Wifi Connection محاولة:

يجعل التطبيقات يعتقدون أنهم على واي فاي بغض النظر عن ما هو الاتصال الأساسي.

تنويه: كتبت هذه الأشياء.
وهو يعمل عن طريق اعتراض مكالمات ConnectivityManager / WifiManager (يستخدم Xposed ). لقد حاولت تغطية معظمهم حتى يقوم بعمل جيد ، ومع ذلك فمن الممكن دائما بعض المفقودين (إذا وجدت شيئا اسمحوا لي أن أعرف).






Related