رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

جلو گیری از ورود اس ام اس به inbox و نشان ندادنnotification مانند همراه بانک ملی


پست های پیشنهاد شده

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

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

با ارسال و دریافت پیامک مشکلی ندارم

سوال :

میخوام پیامک دریافتی از شماره مورد نظر مثلا 09111111  در inbox  نره و notification  نشان داده نشه . برنامه به محض دیدن شماره متن پیامک رو مستقیم دریافت کنه . در خود برنامه پاسخ رو به کاربر نشان بده

در واقع یه نوع فیلتر کردن sms هست مثل برنامه های زیادی که تا الان نوشته شده و روی kikat هم جواب میدن

دقیقا مثلا همراه بانک ملی ایران

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

چه باید کرد؟

با تشکر

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

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

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

با ارسال و دریافت پیامک مشکلی ندارم

سوال :

میخوام پیامک دریافتی از شماره مورد نظر مثلا 09111111  در inbox  نره و notification  نشان داده نشه . برنامه به محض دیدن شماره متن پیامک رو مستقیم دریافت کنه . در خود برنامه پاسخ رو به کاربر نشان بده

در واقع یه نوع فیلتر کردن sms  هست مثل برنامه های زیادی که تا الان نوشته شده و روی kikat  هم جواب میدن

دقیقا مثلا همراه بانک ملی ایران

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

چه باید کرد؟

با تشکر

معمولا نمونه کد گذاشته میشه که  بتونیم بر اساس اون جواب سوالا رو بدیم یا اینکه  کدام قسمت درست پیاده سازی نشده !

د رمورد  android:priority می دونم که عدد بزرگتر یعنی اولویت بالاتر باید در تگ intent-filter اضافه بشه ، شاید مشکلت رو حل کنه! 

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

ابتدا سپاس بابت پاسختون

اینم نمونه کد  :

public class SmsFilter extends BroadcastReceiver {   @Override   public void onReceive(Context context, Intent intent) {       if (intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")) {           Bundle extras = intent.getExtras();           if (extras != null) {               Object[] pdus = (Object[])extras.get("pdus");               if (pdus.length < 1) return; // Invalid SMS. Not sure that it's possible.               StringBuilder sb = new StringBuilder();               String sender = null;               for (int i = 0; i < pdus.length; i++) {                   SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]);                   if (sender == null) sender = message.getOriginatingAddress();                   String text = message.getMessageBody();                   if (text != null) sb.append(text);               }               if (sender != null && sender.equals("09111111")) {                   // Process our sms...                   abortBroadcast();               }               return;           }       }       // ...   }}

در ادامه بگم انتظارم از اقای مدیر جهت توجه به این تاپیک بیشتر هست

با تشکر

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

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

باید در فایل مانیفست برنامه تون اون تکه اولویت رو می بایستی اضافه کنید (در پست قبل هم اشاره کردم بهش)

                                                        

البته دسترسی ها هم باید اضافه بشه :

 

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

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

باید در فایل مانیفست برنامه تون اون تکه اولویت رو می بایستی اضافه کنید (در پست قبل هم اشاره کردم بهش)

                                                        

البته دسترسی ها هم باید اضافه بشه :

 

                   

سپاس بابت وقتتون

من هم اولویت رو 999 گذاشته هم مجوزها رو صادر کردم . اما متاسفانه جواب نمیده . در صورت امکان اون برنامه که شما تست کردین اینجا بذارید

تمامی اینها رو قبلا تست کردم

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

من قبلا هم عرض کردن بودم 

من روی android Kit Kat 4.4.2  دارم کار میکنم . سورس شما رو اندروید 4.0.1 کار میکنه ولی رو ی اندروید 4.4.2 نه

مثلا گوشی من galaxy s4  هست این برنامه رو که نصب کردم اس ام اس رو با شماره مذکور که بهش دادم دریافت میکنه و فیلتر نمیکنه ولی رو گوشی دیگه با اندروید 4 کار میکنه و اس ام اس رو فیلتر میکنه

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

من قبلا هم عرض کردن بودم 

من روی android Kit Kat 4.4.2  دارم کار میکنم . سورس شما رو اندروید 4.0.1 کار میکنه ولی رو ی اندروید 4.4.2 نه

مثلا گوشی من galaxy s4  هست این برنامه رو که نصب کردم اس ام اس رو با شماره مذکور که بهش دادم دریافت میکنه و فیلتر نمیکنه ولی رو گوشی دیگه با اندروید 4 کار میکنه و اس ام اس رو فیلتر میکنه

ظاهرا برای اندروید کیت کت تغییراتی در روند دریافت و ارسال پیام داده شده است و کاری که شما می تونید در نسخه های قبلی اندروید انجام بدید مانند abort پیغام و عدم نمایش اون در این نسخه کیت کت فقط برای برنامه پیش فرض انتخابی  (Default SMS App) کار می کنه و بقیه برنامه های ارسال و دریافت پیام نمی تونند از این ویژگی استفاده کنند مگر اینکه به عنوان برنامه پیش فرض ارسال و دریافت پیغام انتخاب شود و این کار هم در تنظیمات گوشی اندرویدی قابل انجام است.

مطلب مورد نظر در ادرس زیر به طور کامل توضیح داده شده است : 

http://android-developers.blogspot.com/2013/10/getting-your-sms-apps-ready-for-kitkat.html

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

خوب این درست . اما این همراه بانک ملی هم داره از این روش استفاده میکنه . روی گوشی من هم نصب هست . و بدون نقص ارسال و دریافت میکنه بدون اینکه من اس ها رو ببینم . در مورد این چی میگید ؟

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

خوب این درست . اما این همراه بانک ملی هم داره از این روش استفاده میکنه . روی گوشی من هم نصب هست . و بدون نقص ارسال و دریافت میکنه بدون اینکه من اس ها رو ببینم . در مورد این چی میگید ؟

وقتی همراه بانک رو اجرا می کنی ازت درخواست می کنه  که برنامه پیش فرض ارسال پیغام رو تغییر بدی ؟ و در اخر کهخ کارش تموم شد ازت درخواست می کنه که برنامه پیش فرض رو برگردونی به حالت قبل؟ 

کاری که شما می خواید انجام بدید در اندروید کیت کت باید با اجازه کاربر باشه و برنامه پیش فرض رو هم کاربر تغییر بده! 

برنامه شما هم باید intent های لازم داشته باشه جهت نمایش ان در لیست برنامه های قابل انتخاب برای ارسال و دریافت پیام ! 

یک سوال دیگه همراه بانک مورد نظر در قسمت تنظیمات سیستم برای انتخاب برنامه پیش فرض sms لیست شده یا نه ؟ (باید لیست شده باشه)

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

سلام . من همراه بانک رو پاک دوباره نصب کردم

نه چیزی مبنی بر تغییر defaulte  ازم پرسید نه توی تنظیماتش چیزی در این مورد هست

مجوزهای موقع نصب هم اینها هستند :

عکس شماره یک :

342x720http://upload7.ir/imgs/2014-04/69738910448070481520.jpg[/img]300x721http://upload7.ir/imgs/2014-04/78967320722280839051.jpg[/img]400x600http://upload7.ir/imgs/2014-04/61266200888076800312.jpg[/img]

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

کسی نیست جواب این سوال رو بده؟

برنامه همراه بانک مورد نظر  (بانک ملی که فکر کنم توسط شرکت خدمات نوشته شده) مکانیزم ارسال و دریافت پیام اون به صورت   Data Sms که محدودیت های مربوط به Text Sms در کیت کت رو نداره! 

undle bundle = intent.getExtras();            String recMsgString = "";                       String fromAddress = "";           SmsMessage recMsg = null;           byte[] data = null;           if (bundle != null)           {               //---retrieve the SMS message received---              Object[] pdus = (Object[]) bundle.get("pdus");               for (int i=0; i                    recMsg = SmsMessage.createFromPdu((byte[])pdus[i]);                   try {                       data = recMsg.getUserData();                   } catch (Exception e){                   }                   if (data!=null){                       for(int index=0; index                        {                              recMsgString += Character.toString((char)data[index]);                       }                    }                   fromAddress = recMsg.getOriginatingAddress();               }

                                           

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

مرسی بابت پاسختون

میشه بیشتر اطلاعات بهم بدید یا در صورت امکان یه نمونه برنامه بذارید

در ضمن من کد شما رو استفاده کردم

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

2 مشکل کوچولو

1. هرینه ارسال زیاده تقریبا 22 تومان

2. حتما باید ارسال کننده مجهز به یه برنامه تنظیم شده بروی پورت مربوطه باشه

چه فکری برای این قسمت دوم میشه کرد . که با هر گوشی راحت بشه به برنامه پبام داد؟

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

1. هرینه ارسال زیاده تقریبا 22 تومان

2. حتما باید ارسال کننده مجهز به یه برنامه تنظیم شده بروی پورت مربوطه باشه

چه فکری برای این قسمت دوم میشه کرد . که با هر گوشی راحت بشه به برنامه پبام داد؟

هر دو دیوایس (فرستنده و گیرنده) باید مجهز به برنامه باشند تا بتونن پیام بدن و بگیرن. مانند همراه بانک که یک طرف گوشی کاربره و طرف دیگه سرویس موجود در سرور که برای هر بانک شماره تماس و پورت می تونه متفاوت باشه! یا مانند برنامه های whatsapp و غیره که دو کاربر باید برنامه رو داشته باشند البته داده ها بین کاربر و سرور رد و بدل میشه و نه مستقیم بین دو کاربر! بخاطر همین ارسال پیام و غیره رایگان درمیاد چون ارتباط اینترنتی برقرار میشه! (البته هزینه اینترنتش رو در نظر نگیریم)

لینک ارسال
به اشتراک گذاری در سایت های دیگر
  • 9 ماه بعد...

الان يه دفه اي چشم به اين صفحه افتادمشکل منم همينه که اس دريافتي يه شماره بخصوص واسه برنامه بياد نه واسه گوشي به اين نتيجه رسيدم که بايد يه بانک اطلاعاتي داشته باشم که اس ام اس هاي دريافتي رو کپي کنه تو خودش و بعد اون اس دريافتي رو حذف کنيم که واسه گوشي هم نياد و بعد مي تونيم اس هاي کپي شده تو بانک رو استفاده کنيم و به کاربر نشون بديم ولي نمي دونم اين راه اجراييه يا نه فقط راه حلشو مي دونم

ولي منم خيلي به حل اين مسئله نياز دارم و نمي خوام که اجازه از کاربر بگيره مث اون همراه بانک ازتون ممنون مي شم اگه کمکم کنيد چون واقعا واسم حياتيه

اينم ايميلمه

[email protected]

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

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