رفتن به مطلب

بررسی وضعیت اینترنت در Basic4Android


مهران محمودی

ارسال‌های توصیه شده

سلام و عرض ادب به تمامی کاربران گرامی،

با آموزش دیگر در خدمت شما هستیم.

برای بررسی وضعیت اینترنت راه های مختلفی وجود داره که اینجا به ساده ترینش میپردازیم .

قدم اول :

از کتابخانه ها Network رو پیدا کنید و به پروژه خودتون اضافه کنید.

قدم دوم :

نیاز به شیء ServerSocket داریم ! پس در قسمت Globals و یا Process_Globals خودمون تعریفش میکنیم ( تفاوت میان Process_Globals و Globals مبحثی جدا از بحث ماست ):

 
Dim x As ServerSocket
 

حالا نیاز داریم که IP خودمون رو به دست بیاریم ! همونطور که میدونید (شایدم ندونید :D ) در صورتی که به اینترنت وصل نباشیم آی پی بصورت پیشفرض 127.0.0.1 هستش ! ما آی پی رو بدست میاریم و میگیم اگه آی پی برابر با 127.0.0.1 بود یعنی به اینترنت وصل نیستیم، در غیر اینصورت ارتباط برقراره !

با این کد آی پی به دست میاد :

 

Sub GetIp As Boolean
x.Initialize(0,"")
If x.GetMyIP = "127.0.0.1" Then
Return False
Else
Return True
End If
End Sub
 

خط به خط توضیح میدم :

 
Sub GetIp As Boolean
 

با اینکار یه متد به نام GetIp از نوع Boolean تعریف میکنیم. چون نوع متد Boolean هستش مقدار برگشتی باید True به معنای درست یا False به معنی نادرست باشه.

 
x.Initialize(0,"")
 

در اینجا 0 به معنای شماره پورت و مقدار بعدی که خالیه نام رویداد هستش، که نام رویداد در اینجا خالیه چون ما نیاز بهش نداریم.

 
If x.GetMyIP = "127.0.0.1" Then
 

شیء ServerSocket که در بالا تعریف کردیم میتونه با فراخوانی متد GetMyIP آی پی فعلی دستگاه رو برگشت (Return) بده، با شرط تعیین میکنیم در صورتی که آی پی فعلی دستگاه برابر با 127.0.0.1 بود سپس :

 
Return False
 

از کلمه کلیدی Return برای برگشت دادن مقدار معینی استفاده میشود. در مواقع دیگر نیز میتوان با این کد، از ادامه اجرای کدها جلوگیری کرد. در اینجا ما مقدار نادرست (False) رو بعنوان نتیجه متد برگشت دادیم.

 

Else
Return True
End If
End Sub
 

در غیر اینصورت مقدار درست (True) رو برگشت بده و پایان شرط و متد.

______

تا اینجا ما متد رو کد نویسی کردیم، حالا برای استفاده از این متد میتونیم این کد رو استفاده کنیم :

 

Dim isNet As Boolean
isNet = GetIp
 

متغیری از نوع Boolean بنام isNet تعریف کردیم و مقدارش رو برابر با متد GetIp قرار دادیم.

در صورتی که مقدار متغیر isNet برابر با True باشد ارتباط با اینترنت برقرار و در غیر اینصورت برقرار نیست.

 

If isNet = True Then
ToastMessageShow("ارتباط با اینترنت برقرار است.",False)
Else
ToastMessageShow("ارتباط با اینترنت برقرار نیست.",False)
End If
 

آموزش اختصاصی و برای اولین بار بصورت فارسی توسط انجمن برنامه نویسان Basic4Android

موفق باشید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 4 هفته بعد...

نه دیگه، تست نکردم ولی فکر نکنم اینجور باشه.

اینترنت رو چک میکنه . تو وقتی به اینترنت وصل نباشی چطور میتونی با WebView یک سایت رو Load کنی ؟

فرق نداره این هم احتمال بسیار زیاد

لینک ارسال
به اشتراک گذاری در سایت های دیگر

با سلام وبا اجازه دوستان منم یه نمونه اوردم ...

اول کتابخونه های phone , Network را تیک بزنید

اینو تو قسمت Globalsبزارید

Sub Globals

Dim server As ServerSocket
Private b2 As Button
End Sub

خوب حالا واسش یه sub checkinternet تعریف میکنیم یعنی اینجوری

Sub checkinternet As Boolean
   Dim p As Phone
   Dim sb As StringBuilder
   sb.Initialize
   p.Shell("ping -c 2 -W 10 -v google.com", Null, sb, Null)
   If sb.Length = 0 Then
      Return False
   Else
      Return True
   End If
End Sub

خوب حالا این کد رو تو قسمتی بزارید که میخواید بفهمید نت وصله یا ن

من تو یه button شما دیگه هر جا دوست داشتید بزارید

	If checkinternet=True Then
Msgbox ("اینترنت شما وصل است","متصل شد")
Else
Msgbox ("لطفا اینترنت خود را فعال کنید","خطا در اتصال")
End If

امیدوارم بدرد بخوره

به امید موفقیت

با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

این مورد هم بدرد بخوره ...هرچند روی شبیه ساز جواب نمیده


Sub CheckConnection As Boolean

Dim p As Phone

If (p.GetDataState == "CONNECTED") Then
Return True
End If
If (p.GetSettings ("wifi_on") == 1) Then
Return True
End If
If (p.GetSettings ("wifi_on") == 2) Then
Return True
End If
If (p.GetSettings ("wifi_on") == 2) AND (p.GetDataState == "DISCONNECTED") Then
Return True
End If
If (p.GetDataState == "DISCONNECTED") Then
Return False
End If
If (p.GetDataState == "SUSPENDED") Then
Return False
End If
If (p.GetSettings ("wifi_on") == 2) Then
Return True
End If
End Sub

لینک ارسال
به اشتراک گذاری در سایت های دیگر

سلام nicetitle دوست عزیز اون کدی که نیما داد رو شما بزار و اینترنت emulator رو قطع کن کاملا درست جواب میده

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 هفته بعد...
سلام nicetitle دوست عزیز اون کدی که نیما داد رو شما بزار و اینترنت emulator رو قطع کن کاملا درست جواب میده

موفق باشید

بله...

اون مورد درسته ولی وقت زیادی میگیره تا چک کنه و این رضایت کاربرا رو کم میکنه...

لینک ارسال
به اشتراک گذاری در سایت های دیگر

میتونی از ProgressDialogShow استفاده کنی و کاربر کمی صبر کنه یا تو قسمت لود برنامه بزاری وقتی برنامه داره باز میشه این عملیات انجام شه که کاربر فکر کنه خوده برنامه به این شکله که کمی دیر باز میشه

راه های دیگه ی هستن که شاید بهتر باشن اما من تا حالا ا ز این روش ها استفاده نکردم

موفق باشید

لینک ارسال
به اشتراک گذاری در سایت های دیگر

میتونی از ProgressDialogShow استفاده کنی و کاربر کمی صبر کنه یا تو قسمت لود برنامه بزاری وقتی برنامه داره باز میشه این عملیات انجام شه که کاربر فکر کنه خوده برنامه به این شکله که کمی دیر باز میشه

راه های دیگه ی هستن که شاید بهتر باشن اما من تا حالا ا ز این روش ها استفاده نکردم

موفق باشید

تو قسمت لود برنامه!!!میشه بیشتر توضیح بدید...

ممنون

لینک ارسال
به اشتراک گذاری در سایت های دیگر

وقتی برنامه باز میشه کدهات شروع به اجرا میکنن Activity_Create

لینک ارسال
به اشتراک گذاری در سایت های دیگر

منظور آرمین اینه که توی Activity_Create میایی میگی مثلا

ProgressDialogShow("در حال بررسی وضعیت اینترنت...")

و وقتی هم که اینترنت چک شد ProgressDialogHide میکنی.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

وقتی برنامه باز میشه کدهات شروع به اجرا میکنن Activity_Create

فکر کردم قبل از اون رو منظورته...

کد رو که همونجا میزارم...

ممنون وقت گذاشتی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 2 ماه بعد...

اقای محمودی عزیز این روشی که شما گفتید رو من تو انواع گوشیها امتحان کردم شاید رو 98 درصد گوشی ها جواب داد اما رو چند مورد جواب نداد

یکیش star2plus سامسونگ

لینک ارسال
به اشتراک گذاری در سایت های دیگر

روش آقای محمودی یه مشکل داره اونم اینکه

    Else
       ToastMessageShow("ارتباط با اینترنت برقرار نیست.",False)
   End If

رو هیچ وقت نشون نمیده نه رو امولاتور و نه روی تلفن همراه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

از روش هایی که سایر دوستان لطف کردن استفاده کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

ببخشید جسارت میکنم تو تاپیک آموزش لینک میدم.

برای چک کردن اینترنت میتونید از این روش استفاده کنید که نیازی به صبر کردن نیست تا چک بشه... برای مثال اگه یه باتون برای چک کردن بذارید با کلیک روی اون درجا همون لحظه میگه که اینترنت قطعه.

http://answercenter.ir/thread913.html#post5110

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 5 ماه بعد...

کد پژمان لینکش نیست  لطفا  کد رو دوباره لینک کنید  ببینم چی بوده

لینک ارسال
به اشتراک گذاری در سایت های دیگر

  • 1 سال بعد...

ببخشید جسارت میکنم تو تاپیک آموزش لینک میدم.

برای چک کردن اینترنت میتونید از این روش استفاده کنید که نیازی به صبر کردن نیست تا چک بشه... برای مثال اگه یه باتون برای چک کردن بذارید با کلیک روی اون درجا همون لحظه میگه که اینترنت قطعه.

http://answercenter.ir/thread913.html#post5110

پژمان عزیز ممکنه لینک رو باز نگری کنید 

با تشکر

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

×
×
  • اضافه کردن...