رفتن به مطلب

مسدود سازی (Block) اپلیکشن اندروید در B4A


مهران محمودی

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

با عرض سلام خدمت تمامی کاربران محترم،

در این آموزش قصد دارم نحوه مسدود سازی (Block) اپلیکشن اندروید رو توسط اینترنت یاد بدم.

شرح کار اینطوره که برنامه در هر اجرا در صورتی که ارتباط با اینترنت برقرار بود، محتویات موجود در آدرسی که شما تعیین کردید رو بررسی میکنه. شما باید شرط تعیین کنید اگه اطلاعات برابر با کلمات خاصی بود برنامه اعلام کنه که مسدود شده !

این نکته رو بگم که به یک هاست نیاز داریم که بتونیم فایل آپلود کنیم و اون رو ملاک قرار بدیم برای انجام اینکار !

من خیلی سریع کدها رو قرار میدم توضیحات بیشتر در پست دوم :

در قسمت Acitivty_Create :

 

If FirstTime = True Then

If isNetAvailable = True Then CheckBlock

End If
 

متد isNetAvailable که برای بررسی ارتباط با اینترنت استفاده کردیم:

 

Sub isNetAvailable As Boolean

Dim ss As ServerSocket

ss.Initialize(0,"")

Dim ip As String : ip = ss.GetMyIP

If ip = "127.0.0.1" Then

Return False

Else

Return True

End If

End Sub
 

و متد CheckBlock که در صورت برقراری ارتباط با نت اجرا میشه :


 

Sub CheckBlock

Dim client As HttpClient

client.Initialize("Client1")

Dim request As HttpRequest

request.InitializeGet("http://answercenter.ir/mehran/block.txt")

client.Execute(request,1)

End Sub
 

دو رویداد برای HttpClient وجود داره که برای آموزش بیشتر هر دو رو مورد استفاده قرار میدم؛

رویداد اول در صورت مواجه با خطا هنگام دریافت اطلاعات:

 

Sub Client1_ResponseError (Response As HttpResponse, Reason As String, StatusCode As Int, TaskId As Int)

If TaskId = 1 Then ToastMessageShow("خطا در دریافت اطلاعات."+CRLF+Reason,False)

End Sub
 

و رویداد دوم در صورت دریافت اطلاعات بدون مشکل :

 

Sub Client1_ResponseSuccess (Response As HttpResponse, TaskId As Int)

If TaskId = 1 Then

Response.GetAsynchronously("Res1",File.OpenOutput(File.DirInternalCache,fileName,False),True,TaskId)

End If

End Sub
 

و برای HttpResponse هم یک رویداد وجود داره که در واقع کار اصلی ما در این قسمت انجام میشه که همون بررسی اطلاعات دریافتی هستش :

 


Sub Res1_StreamFinish (Success As Boolean, TaskId As Int)

If Success=True Then

If File.Exists(File.DirInternalCache,fileName) Then

Dim reader As TextReader

reader.Initialize(File.OpenInput(File.DirInternalCache,fileName))
Dim data As String : data = reader.ReadAll

If data = "blocked" Then

Msgbox("برنامه مسدود شده است.","مسدود شده")

ExitApplication

End If

File.Delete(File.DirInternalCache,fileName)

End If

End If

End Sub
 

تموم ! تا یادم نرفته بگم به دو کتابخانه HTTP و Network نیاز داریم که بطور پیشفرض در لیست کتابخانه های Basic4Android قرار دارن.

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

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

کتابخانه ها پیوست شدند.

ادامه آموزش در پست بعـدی.

موفق باشید.

HTTP.rar

Network.rar

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

  • 3 ماه بعد...

سلام

من تازه کار با B4a را شروع کردم میشه بگید چطور میتونم با استفاده از چک کردن تاریخ دستگاه عمل مسدود کردن برنامه را انجام بدم؟!

ممنون از راهنماییتون

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

  • 3 ماه بعد...

        Response.GetAsynchronously("Res1",File.OpenOutput(File.DirInternalCache,fileName,False),True,TaskId)

دقیقا تویه filename باید چی بنویسیم؟ اسم چه فایلی؟

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

        Response.GetAsynchronously("Res1",File.OpenOutput(File.DirInternalCache,fileName,False),True,TaskId)

دقیقا تویه filename باید چی بنویسیم؟ اسم چه فایلی؟

اسم فایلی که قراره ساخته بشه . بسته به خودتون داره. هر اسمی دوست دارید بزارید. مثلا mohsen.txt *خواب*

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

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...