setsupportactionbar - toolbar android example




كيف يمكنني الوصول إلى المضيف المحلي الخاص بي من جهاز Android الخاص بي؟ (20)

يمكنني الوصول إلى خادم الويب للكمبيوتر المحمول باستخدام محاكي Android ، فأنا أستخدم 10.0.2.2:portno بشكل جيد.

ولكن عندما أقوم بتوصيل هاتف Android الحقيقي ، لا يمكن لمتصفح الهاتف الاتصال بخادم الويب نفسه على الكمبيوتر المحمول الخاص بي. يتم توصيل الهاتف بالكمبيوتر المحمول باستخدام كبل USB. إذا قمت بتشغيل الأمر adb devices ، يمكنني رؤية هاتفي.

ماذا ينقصني؟


باستخدام كابل USB:

(على سبيل المثال ، إذا كنت تستخدم خادم WAMP):

1) قم بتثبيت برامج تشغيل الأندرويد الخاصة بك على جهاز الكمبيوتر الخاص بك وقم بتنزيل أداة Android Tethering Reverse Tool المحمولة وقم بتوصيل جهاز Android الخاص بك من خلال تطبيق Reverse Tool .

2) انقر على أيقونة WAMP> Put Online (بعد إعادة التشغيل).

3) افتح عنوان IP الخاص بك في متصفح Android (على سبيل http://192.168.1.22 أو http://164.92.124.42 )

للعثور على عنوان IP المحلي الخاص بك ، انقر فوق ابدأ> تشغيل> cmd واكتب ipconfig وسيظهر عنوان IP الخاص بك في الإخراج.

هذا كل شئ. الآن يمكنك الوصول إلى (openhost localhost) من Android.


مستخدمي ماك osx

نجحت عن طريق تمكين الإدارة عن بُعد:

  1. تأكد phone and laptop are connected to the same wifi network
  2. على نظام التشغيل mac ، انتقل إلى system preferences/sharing
  3. enable remote management

سترى رسالة مشابهة لهذه

يمكن للمستخدمين الآخرين إدارة الكمبيوتر الخاص بك باستخدام العنوان some.url.com

على جهاز Android ، يجب أن تكون الآن قادرًا على some.url.com ، والذي يفوض إلى localhost some.url.com على جهاز Mac. يمكنك أيضا استخدام ifconfig للحصول على عنوان IP الخاص بك macbook

حل محمول مع ngrok (أي نظام تشغيل مع عقدة أو npm)

إذا كنت لا تمانع في تعريض مشروعك لنطاق مؤقت ، يمكنك استخدام ngrok . دعنا نقول أن لديّ تطبيقًا يعمل على localhost:9460

npm install ngrok -g
ngrok http 9460

هذا سوف يعطيني:

Session Status                online
Update                        update available (version 2.2.8, Ctrl-U to update)
Version                       2.2.3
Region                        United States (us)
Web Interface                 http://127.0.0.1:4040
Forwarding                    http://f7c23d14.ngrok.io -> localhost:9460
Forwarding                    https://f7c23d14.ngrok.io -> localhost:9460

Connections                   ttl     opn     rt1     rt5     p50     p90
                              0       0       0.00    0.00    0.00    0.00

يمكنني الآن الوصول إلى https://f7c23d14.ngrok.io كطريقة لعرض localhost عن بُعد. هذا أمر رائع لمشاركة أعمال التصميم أو التقدم مع العملاء

حل بديل مع تمرير وكيل nginx

إذا كنت تشغل شيئًا من هذا القبيل عبر nginx proxy_pass ، فسيتطلب الأمر مزيدًا من التغيير والتبديل - هذا نهج شاذ ، ولكنه يعمل بالنسبة لي وأنا منفتح على الاقتراحات حول تحسينه:

  • تمكين الإدارة عن بعد (كما ذكر أعلاه)
  • تعيين مؤقتاً الملقم للاستماع على المنفذ 81 بدلاً من 80
  • sudo nginx -s reload
  • قم بزيارة http://youripaddress:81

`` `

server {
  listen 80;
  listen 81; # <-------- add this to expose the app on unique port
  server_name  ~^(local|local\.m).example.com$;
  ...
}

إعادة تحميل وزيارة http://youripaddress:81


أخيرا فعلت في أوبونتو ، فأنا أدير خادم nodejs على مضيف محلي: 8080

1) فتح نوع المحطة الطرفية ifconfig سوف تحصل على IP شيء من هذا القبيل: آينت addr: 192.168.43.17

2) الآن ببساطة وضع عنوان url مثل هذا: "192.168.43.17:8080" (منفذ 8080 قادمًا من رقم منفذ المضيف المحلي) على سبيل المثال: "192.168.43.17:8080/fetch"


أسهل طريقة الافتراضي هو localhost هو http://localhost:port هذا العمل في labtop والروبوت كذلك

إذا لم يكن يعمل في IP الروبوت الافتراضي لك الهاتف هو 127.0.0.1:port :)

فتح المحطة ونوع: -

 hostname -i
 #127.0.0.1
 hostname -I
 #198.168.*.*

أولا وقبل كل ربط هاتفك والكمبيوتر إلى واي فاي المشتركة.

ثم ، افتح موجه الأوامر باستخدام التشغيل كمسؤول

إعطاء الأمر ipconfig

مما يدل على شبكة LAN اللاسلكية

استخدم ip: منفذ الخادم الخاص بك للوصول إليه في الهاتف


أولا وقبل كل شيء جعل جهازك (حيث يتم تشغيل الخادم) عنوان IP ثابت. أدخل عنوان IP الثابت هذا في رمز android. انتقل بعد ذلك إلى واجهة جهاز التوجيه اللاسلكي الخاص بك وتحقق من اللوحة اليمنى. سترى خيارًا مثل إعادة توجيه / إعادة توجيه المنفذ. انقر فوقها ثم قم htttpd.conf توجيه المنفذ 80. الآن قم بتحرير ملف htttpd.conf وقم بتحريره

سماح من الكل

. أعد تشغيل الخادم الخاص بك. كل شيء يجب أن تعمل بشكل جيد الآن.

بالإضافة إلى ذلك ، يمكنك حجز عنوان IP الخاص بجهازك بحيث يتم تخصيصه لك دائمًا. في اللوحة اليمنى لواجهة جهاز التوجيه الخاص بك ، ابحث عن DHCP -> Address Reservation ، انقر عليه. أدخل عنوان MAC الخاص بجهازك وعنوان IP الذي أدخلته في الشفرة. انقر فوق حفظ. سيحفظ هذا عنوان IP المحدد لجهازك.


استخدم connectify و xampp أو ما يعادلها ، واكتب عنوان IP على شريط عنوان URL للجوّال للدخول إليه


الطريقة الأسهل (التي تعمل بشكل جيد بالنسبة لي) هي استضافة موقعك محليًا في 0.0.0.0:<port_no> والوصول إليه باستخدام الأجهزة المحمولة ، استخدم <local_ipv4_address>:<port_no>/<path> في المتصفح.

  • لمعرفة عنوان ipv4 المحلي الخاص بك ، فقط اكتب ipconfig في cmd
  • يمكن لأي جهاز متصل بشبكة SAME الوصول إلى عنوان url هذا.

بسيطة جدا ، - سطر الأوامر GOTO (نافذة + R [نوع cmd]) - اكتب ipconfig ، والتي سوف تظهر عنوان IP الحالي لجهاز الكمبيوتر الخاص بك - اكتب عنوان IP taht على متصفح هاتف Android الخاص بك مع: 80 على سبيل المثال ( http: // 192.168.xx: 80 )

فعله

سوف تظهر localhost على هاتفك


تم تشغيل هذه المشكلة باستخدام عدة خوادم localhost مختلفة. وأخيرًا ، أصبح تطبيقي يعمل على الهاتف في ثوانٍ معدودة فقط باستخدام خادم Python البسيط. لا يستغرق الأمر سوى بضع ثوانٍ ، لذلك تستحق التجربة قبل الدخول في أي حلول أكثر تعقيدًا. أولاً ، تأكد من تثبيت Python. cmd+r واكتب python لـ Windows أو $ python --version في جهاز mac terminal.

التالى:

cd <your project root>

$ python -m SimpleHTTPServer 8000

بعد ذلك فقط اعثر على عنوان الجهاز المضيف على الشبكة ، استخدمت System Preferences/Sharing على نظام Mac للعثور عليه. انقر فوق ذلك في جهاز Android الخاص بك ويجب عليك تحميل index.html ويجب أن تكون جيدًا.

إذا لم يكن الأمر كذلك فإن المشكلة شيء آخر ، وقد ترغب في النظر في بعض الحلول المقترحة الأخرى. حظا طيبا وفقك الله!

* تصحيح *

هناك حل سريع آخر للتجربة إذا كنت تستخدم Chrome وهو خادم الويب لامتداد Chrome. لقد وجدت طريقة سهلة وسريعة جدًا للوصول إلى المضيف المحلي على هاتفي. فقط تأكد من التحقق من Accessible to local network تحت Options ويجب أن تعمل على الخلية الخاصة بك دون أي مشكلة.


شخصيا أنا لا أصر على استخدام مضيف محلي عند استخدام الجهاز ، ليس هناك حل سهل.

كل ما عليك هو بدء النشاط حيث تتصل بـ localhost حيث يمكنك استخدام المحاكي. يمكن إنشاء المعلومات التي تحصل عليها من الجهاز بكل سهولة ويمكن إرسالها إلى النشاط كمعلمة.


على Windows PC قد لا تحتاج إلى القيام بأي شيء آخر غير اكتشاف عنوان IPv4 الخاص بك باستخدام الأمر "ipconfig".

  • الخطوة 1: قم بتوصيل هاتفك بالكمبيوتر باستخدام كابل USB.
  • الخطوة 2: استخدم الأمر 'ipconfig' لاكتشاف عنوان IPv4 الخاص بك (عنوان IP الخارجي للموجه) على سبيل المثال 192.168.1.5 في حالتي.
  • الخطوة 3: ما عليك سوى الدخول إلى "192.168.1.5:8080" من متصفح هاتفك. إنها تعمل !

تفاصيل Env أخرى: Windows 7 ، Google Nexus 4 (4.2.2) ، Tomcat Server ، Grails Application.

يجب عليك أيضًا التأكد من أن لديك الإذن للوصول إلى الإنترنت في ملف AndroidManifest:

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

على الرغم من أن إجابة واحدة قد تم قبولها إلا أن هذا الأمر نجح بالنسبة لي:

  1. تأكد من وجود كل من جهاز الكمبيوتر وجهاز Android على نفس الشبكة.
  2. الحصول على عنوان IP لجهاز الكمبيوتر الخاص بك. (في حالة نوع ماك ifconfig داخل المحطة و ابحث عن en0/en1 -> inet يجب أن يكون شيء مثل 19*.16*.1.4 .) (على ويندوز ، استخدم `ipconfig)
  3. افتح إعدادات الجوال وانتقل إلى شبكة-> اضغط طويلاً على شبكة wifi -> تعديل الشبكة -> قم بالتمرير لأسفل إلى الخيارات المتقدمة -> اختر دليل الوكيل وفي اسم مضيف الوكيل اكتب عنوانك مثل 19*.16*.1.4 داخل المنفذ أدخل ميناء. واحفظه.

  4. ابحث عن what is my ip في جوجل كروم ، والحصول على IP الخاص بك ، دعنا نقول إنه 1**.1**.15*.2**

  5. حاول الوصول إلى 1**.1**.15*.2**:port/ من جهازك المحمول.

انها بسيطة مثل هذا.


قد يكون لديك خادم الويب يستمع على واجهة الاسترجاع وليس على واجهة الشبكة الخاصة بك. العلامات الرئيسية لهذا هي:

  • يضرب على 127.0.0.1 و localhost (من المضيف المحلي أو محاكي أندرويد) العمل
  • لا تعمل النتائج على 192.168.xxx.xxx ، سواء من localhost أو LAN أو WAN

أتحدث أكثر عن تشخيص هذا وإصلاح هذا في إجابة here .


لا يوفر USB الشبكة إلى الجهاز المحمول.

إذا كان كل من سطح المكتب والهاتف متصلان بنفس شبكة WiFi (أو أي شبكة محلية أخرى) ، فاستخدم عنوان IP الخاص بسطح المكتب الذي تم تعيينه بواسطة جهاز التوجيه (وليس localhost وليس 127.0.0.1 ).

لمعرفة عنوان IP الخاص بسطح المكتب الخاص بك:

  • اكتب في سطر الأوامر ipconfig (Windows) أو ifconfig (Unix)
  • سيكون هناك مجموعة من عناوين IP
  • محاولة كل منهم (باستثناء localhost المحلي forementioned و 127.0.0.1 )

إذا كان هاتفك متصلاً بشبكة الجوال ، فستصبح الأمور أصعب.

إما الذهاب المتشددين:

  • اكتشف أولاً عنوان IP الخارجي لجهاز التوجيه ( https://www.google.de/search?q=myip )
  • ثم ، على جهاز التوجيه ، قم بإعادة توجيه بعض المنفذ إلى <your desktop IP>:<server port number>
  • أخيرا استخدام عنوان IP الخارجي ومنفذ التوجيه

خلاف ذلك استخدام شيء مثل xip.io أو ngrok .


لقد استخدمت هذه العملية:

  • تثبيت Fiddler على جهاز الكمبيوتر
  • قم بإعداد جهاز الكمبيوتر الشخصي وجهاز Android باتباع هذه التعليمات الممتازة
  • ما عليك سوى الانتقال إلى المتصفح على جهاز Android واكتب http: //ipv4.fiddler للوصول إلى المضيف المحلي

لاحظ أن هذه العملية تتطلب منك تغيير إعدادات WiFi على جهاز Android في بداية كل جلسة ونهايتها. لقد وجدت هذا أقل إيلاما ثم تأصيل جهاز أندرويد الخاص بي.


ما الذي نجح في تحقيقه (الهدف: تصحيح تطبيق خادم Windows يعمل على المضيف المحلي: 99999 من تطبيق عميل يعمل على هاتف Android)

  1. الهاتف والكمبيوتر الشخصي متصل على نفس الشبكة مثل 192.168.1.xxx (متصل عبر wifi في حالتي)
  2. تمكين المنفذ 99999 في جدار الحماية ويندوز
  3. تشغيل كمد كمسؤول: netsh http add urlacl url = http: // *: 99999 / user = Everyone

بعد ذلك ، كان يمكن الدخول إلى عنوان URL للتطبيق (my_dev_machine_ip: 99999 / path_to_service) من الهاتف.



ومع ذلك هناك حل أفضل بكثير. يمكنك الوصول إلى جهازك المضيف باستخدام عنوان IP "10.0.2.2". تم تصميم هذا بهذه الطريقة بواسطة فريق Android. بحيث يمكن لخادم الويب الخاص بك تشغيله تمامًا على المضيف المحلي ومن تطبيق Android الخاص بك ، يمكنك الوصول إليه عبر "http://10.0.2.2:8080".


يتيح لك ngrok وضع ngrok على خادم مؤقت وهو ngrok الإعداد. لقد قدمت بعض الخطوات هنا التي يمكن العثور عليها في الرابط:

  1. قم بتنزيل ملف ngrok zip من الرابط أعلاه
  2. افتح الرمز البريدي
  3. قم بتشغيل الخادم محليًا واحفظ رقم المنفذ
  4. في المحطة ، انتقل إلى المجلد الذي تعيش فيه ngrok واكتب ngrok http [port number]

سترى لوحة تحكم صغيرة في جهازك مع عنوان يشير إلى مضيفك المحلي. وجه تطبيقك إلى هذا العنوان وانشئه على جهازك.





android