PDA

View Full Version : حذف پیامک ولی با تاخیر



nasr
یک شنبه 25 مرداد 1394, 08:50 صبح
سلام
بنده با این کد یک پیامک خاص را حذف میکنم ولی مشکل اینه که Notification دریافت پیامک نمایش داده میشه
یعنی مشخص میشه که پیامک رسیده (هم آلارم میده و هم در قسمت Notification ها پیامک نمایش داه میشه)
دوم اینکه وقتی داخل صندوق پیامک ها میشیم یه دفعه پیامک حذف میشه و اینطوری مناسب نیست
من میخوام اصلا کاربر به هیچ وجه متوجه دریافت پیامک نشه و این پیامک را در برنامه با فرمتی خاص به کاربر نمایش بدهم

ممنون

public void deleteSMS(Context context, String number) {



try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {




// Toast.makeText(context, " Start Delete ", 1).show();
Log.i("deleteSMS>>>", " Start Delete ");


String body = "";
String num = "";


Uri uri = Uri.parse("content://sms/inbox");
Cursor c = context.getContentResolver().query(uri, null, null, null, null);
if (c.moveToFirst()) {
body = c.getString(c.getColumnIndexOrThrow("body")).toString();
num = c.getString(c.getColumnIndexOrThrow("address")).toString();
}


//Toast.makeText(context, "body : " +body +"-- num :" + num, 1).show();
Log.i("deleteSMS>>>", "body : " + body + "-- num :" + num);


int id = c.getInt(0);
int thread_id = c.getInt(1);


// Toast.makeText(context, "id : " +id +"-- thread_id :" + thread_id, 1).show();
Log.i("deleteSMS>>>", "id : " + id + "-- thread_id :" + thread_id);


Uri thread = Uri.parse("content://sms");
context.getContentResolver().delete(thread, "thread_id=? and _id=?", new String[]{String.valueOf(thread_id), String.valueOf(id)});
//Toast.makeText(context, "Delete success.........", 1).show();
Log.i("deleteSMS>>>", "Delete success.........");


} catch (Exception e) {
// TODO: handle exception
Log.i("deleteSMS>>>", "not success delete........." + e.toString());
}


}

nasr
یک شنبه 25 مرداد 1394, 09:46 صبح
سلام
مشکلم حل شد
راه حل :

با این کد می تونید جلوی دریافت پیامک را بگیرید:

publicclassSMSReceiverextendsBroadcastReceiver
{
publicvoid onReceive(Context context,Intent intent)
{
if(conditionMatches){
abortBroadcast();
}
}
}

nasr
یک شنبه 25 مرداد 1394, 14:48 عصر
مشکل جدید اینه که این کد یه بار جلوی پیامک را میگیره
مثلا اگه به دلیل مشکل سامانه ارسال پیامک یک پیامک دوبار ارسال شود
پیامک دوم نمایش داده میشه

دوستان دلیلش چی میتونه باشه؟