رفتن به مطلب
  • 0

چطور تماس های ورودی اندروید را در b4a کنترل کنیم ؟


sajjad_afzali

سوال

سلام دوستان

میخوام یک برنامه بنویسم که وقتی روی یک موبایل نصب بشه ، فقط یک شماره خاص بتونه باهاش تماس بگیره !

یعنی بر عکس نرم افزار های بلاک تماس ، به عنوان مثال به موبایل شماره 0915****** رو میدم و میگم به غیر از این هر شماره ای بود اون رو رد تماس بزنه.

میخوام در پس زمینه هم عمل کنه.

لطفا اگر سورس یا قطعه کدی در این زمینه دارید اینجا قرار بدید.

یشاپیش ممنون از راهنماییتون.

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

  • پاسخ ها 51
  • ایجاد شده
  • آخرین پاسخ

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

کتابخانه broadcastreciver رو تیک زدی؟

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

اما برنامه کار نمیکنه و وقتی روی گوشی اجرا میکنم ، باز هم زنگ میخوره !

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

در در 1394/05/30, 09:36:03، پژمان نیکروان گفته است :

نمیدونم به چه مدت زنگ میخوره.

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

یعنی یک لحظه کوچیک زنگ میخوره بعد رد میخوره.

  1. خب دوستان یکی کمکم کنه

با اینکه نسخه آپدیتی برنامم اعلا شده بود ولی متاسفانه کافه بازار دسترسی call_phone رو قبول نکرد و گف intent استفاده کنم

 

مشکلی هم که در intent دارم...

 Dim BCI As Intent
   BCI = i
   Dim number As String = BCI.GetExtra("android.intent.extra.PHONE_NUMBER")
   If number = "0935627****" Then
       KillCall
	   Else
	   	aspun.SaveString("aaaa",number)
   End If

number رو null برمیگردونه فقط

کسی هست به دادم برسه ؟؟؟؟؟

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

آموزش smsInterceptor رو مینویسم اون ساده و خوبه.

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

آموزش smsInterceptor رو مینویسم اون ساده و خوبه.

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

♥

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

Sub KillCall

  Dim r As Reflector
  r.Target = r.GetContext
  Dim TelephonyManager, TelephonyInterface As Object
  TelephonyManager = r.RunMethod2("getSystemService", "phone", "java.lang.String")
  r.Target = TelephonyManager
  TelephonyInterface = r.RunMethod("getITelephony")
  r.Target = TelephonyInterface
  r.RunMethod("endCall")
End Sub

آقا این kill call دسترسی callphone نباشه کار نمیکنه که بازار هم این دسترسی رو قبول نمیکنه چی بزاریم جاش؟؟؟؟

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

در 8 ساعت قبل، karizmatik163 گفته است :

آقا این kill call دسترسی callphone نباشه کار نمیکنه که بازار هم این دسترسی رو قبول نمیکنه چی بزاریم جاش؟؟؟؟

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

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

تو BroadCastReceiver تماس های ورودی رو چک می کنید

بعد با کد زیر تماس رو رد می کنید

Sub KillCall

  Dim r As Reflector
  r.Target = r.GetContext
  Dim TelephonyManager, TelephonyInterface As Object
  TelephonyManager = r.RunMethod2("getSystemService", "phone", "java.lang.String")
  r.Target = TelephonyManager
  TelephonyInterface = r.RunMethod("getITelephony")
  r.Target = TelephonyInterface
  r.RunMethod("endCall")
End Sub

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

تو BroadCastReceiver تماس های ورودی رو چک می کنید

بعد با کد زیر تماس رو رد می کنید

Sub KillCall

  Dim r As Reflector
  r.Target = r.GetContext
  Dim TelephonyManager, TelephonyInterface As Object
  TelephonyManager = r.RunMethod2("getSystemService", "phone", "java.lang.String")
  r.Target = TelephonyManager
  TelephonyInterface = r.RunMethod("getITelephony")
  r.Target = TelephonyInterface
  r.RunMethod("endCall")
End Sub

ممنون اما من تازه شروع به کار کردم و با BroadCastReciver آشنایی ندارم.

اگه میشه یه مقدار مبتدی توضیح بدید.

باز هم تشکر

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

در 5 ساعت قبل، پژمان نیکروان گفته است :

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

دوباره آپ کردم قبول نمیکنن

 

هی میگن intent intent:shout:

آخه من کل انسر سنتر سایت های خارجی و ... گشتم فقط تنها چاره این کلاس بود

 

ولی جالبه واسم کتابخونه answercall دانلود کردم زنگارو اتومات بدون مجوز جواب میده ولی رد تماس نداره

 

چیکا کنم من الان....

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

در 6 ساعت قبل، پژمان نیکروان گفته است :

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

 

در 19 دقیقه قبل، karizmatik163 گفته است :

دوباره آپ کردم قبول نمیکنن

 

هی میگن intent intent:shout:

آخه من کل انسر سنتر سایت های خارجی و ... گشتم فقط تنها چاره این کلاس بود

 

ولی جالبه واسم کتابخونه answercall دانلود کردم زنگارو اتومات بدون مجوز جواب میده ولی رد تماس نداره

 

چیکا کنم من الان....

داداش من کتابخونه answercall 1.1 دو پیوست میکنم یه سایت خارجی گفته میشه ولی توضیحی نداده ببین میتونی کمکم کنی ؟....

AnswerCall1.1

 

داخلشم یه سورس تستی گداشتم

 

 

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

Dim bc As BroadCastReceiver
   bc.Initialize("BroadcastReceiver")
   bc.addAction("android.intent.action.NEW_OUTGOING_CALL")
   bc.addAction(bc.SMS_RECEIVED)
   bc.SetPriority(2147483647)
   bc.registerReceiver("") 'here you can add the main action (intent)

Sub BroadcastReceiver_OnReceive (Action As String,i As Object)
   Dim BCI As Intent
   BCI = i
   Dim number As String = BCI.GetExtra("android.intent.extra.PHONE_NUMBER")
   If number = "0935627****" Then
       KillCall
   End If
End Sub

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

ممنون جناب حقیقی

فقط میمونه این سوال که باید در چه رویدادی این کد رو قرار بدم تا اجرا بشه ؟

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

دوست من اگه می خواید این برنامه رو بنویسید باید از سرویس استفاده کنید.

broadcast reciver در سرویس باید نوشته بشه و در واقع یک اینتنت فایر میسازه.

البته میشه بدون broadcast reciver سرویس از نوع اینتنت فایر ساخت که زیادم سخت نیست. سر فرصت آموزششو میسازم.

کدی هم که مصطفی داد کار می کنه احتمالا.

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

در 5 ساعت قبل، karizmatik163 گفته است :

داداش من کتابخونه answercall 1.1 دو پیوست میکنم یه سایت خارجی گفته میشه ولی توضیحی نداده ببین میتونی کمکم کنی ؟....

این کتابخانه که برای جواب دادن به تماس هست.

با اینتنت نمیشه که تماسو مستقیم قطع کرد.

احتمالا منظورشون اینه که با اینتنت اینکارو به عهده تنظیمات تماس خود گوشی بسپارید و خودش اینکارو انجام بده.... که من تاحالا اینکارو انجام ندادم و اصلا ممکنه یه گوشی ای نداشته باشه این امکانو.

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

با سلام و خسته نباشید خدمت اساتید خودمونی :gamer:

 

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

Sub BroadcastReceiver_OnReceive (Action As String,i As Object)
   Dim BCI As Intent
   BCI = i
   Dim number As String = BCI.GetExtra("android.intent.extra.PHONE_NUMBER")
   If number = "0935627****" Then
       KillCall
   End If
End Sub

ولی برنامه اصلا نمیتونه number رو تو ورودی های string قرار بده و برا همین برنامه متوقف میشه حالا اونجایی که گفته نامبر و با عدده مقایسه کنه انجام نمیشه

میدونم حالا میگین چه ربطی داره number رو string تعریف کردیم ولی واقعا با توجه به تستای مستمری که انجام دادم همشون اون دلیلرو نشون میدادن

 

کسی راه حلی داره بگه ...

در در 1394/02/06, 08:35:55، مهدی ایزدی گفته است :

ببینید فکر کنم شما درک درستی از سرویس ندارید *fekr*

این کدها باید در Service Moudle قرار بگیرند.

ما چند مدل Module داریم ...

برای دیدن اونها Project > Add New Module برید *like*

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

اونجور که باید وجود داشته باشه وجود نداره . سعی میکنم آموزشش رو براتون آماده کنم *fekr*

 

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

خب مشکل بالایی با هزار دنگ و فنگ حل شد حالا نمیدونم چرا مقدار

BCI.GetExtra("android.intent.extra.PHONE_NUMBER")

null برمیگردونه

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

بایگانی شده

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

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

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

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