بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
حذف sms
با سلام
میخاستم ببینم میشه پیامک هایی که با شماره های خاصی دریافت میشن رو حذف کرد؟stackOverFlow رو کلی گشتم چیزه خاصی نفهمیدم ممنون میشم راهنمایی کنید
برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال
Vahid
9 سال پیش
+3
0
"Unless your app is marked as default SMS app in device, you wont be able to play with SMS Provider, please read SMS guidelines for the same for KITKAT"
چیزی که مشخصه این هست که از یک ورژن از اندروید (مثلا کیت کت) به بعد، برنامه ها نمیتونند از SMS Provider استفاده کنند. مگر اینکه به عنوان برنامه پیشفرض اس ام اس گوشی معرفی بشن.
پاسخ به سوال
میلاد
9 سال پیش
+9
0
public class Sms extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Object[] pdus = (Object[]) intent.getExtras().get("pdus");
SmsMessage sms = SmsMessage.createFromPdu((byte[]) pdus[0]);
String sender = sms.getOriginatingAddress();
String bodi = sms.getMessageBody();
//Log.i("Log", "" + sender);
String h="شماره ای که میخای پیامش پاک بشه" ;
if (sender.trim().equals(h)) {
cursor.close();
this.abortBroadcast();//از ورود پیام به گوشی جلو گیری میکنه
// deleteSms(sender); // پیام از پیامهات پاک میکنه
}
}
}
public static void deleteSms(String sender) {
Cursor cursor = G.context.getContentResolver().query(
Uri.parse("content://sms/"), new String[]{
"_id", "thread_id", "address", "person", "date", "body" }, null, null, null);
try {
while (cursor.moveToNext())
{
int id = cursor.getInt(0);
String address = cursor.getString(2);
Log.i("Log", "a" + id);
if (address.equals(sender))
{
G.context.getContentResolver().delete(
Uri.parse("content://sms/" + id), null, null);
}
}
}
catch (Exception e) {
}
}
}
حالا خودت انتخاب کن از کدوم استفاده کنی
پرمیشن
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
رسیور
<receiver android:name="Sms" >
<intent-filter android:priority="100">
<action android:name="android.provider.Telephony.SMS_RECEIVED" >
</action>
</intent-filter>
</receiver>
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .