2016-12-01 52 views
-2

使用廣播接收器,它可以完美地執行。清單文件讀取短信,生成匹配,然後以編程方式刪除

+0

還沒發佈完整的代碼..deleteSMS()被調用時,何處? ....它是爲了刪除所有的短信:) – Gattsu

+0

我已經打電話刪除短信方法在後執行方法..是它刪除收件箱中的所有短信,其實我認爲我需要刪除只讀短信,但是我不konw我怎麼能做到這一點。我也更新它 – Zilu

+0

通過將讀取sms正文的值存儲到sharedpreference並僅刪除處於sharedprefrence中的用戶來執行此操作。 – Gattsu

回答

-1

添加權限像

<uses-permission android:name="android.permission.RECEIVE_SMS"android:protectionLevel="signature" /> 
<uses-permission android:name="android.permission.READ_SMS" /> 

然後添加意圖過濾器:

<receiver android:name="com.aquadeals.seller.services.SmsReceiver"> 
    <intent-filter> 
     <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
    </intent-filter> 
</receiver> 

獲取所有短信:

TelephonyProvider telephonyProvider = new TelephonyProvider(context); 
List<Sms> smses = telephonyProvider.getSms(Filter.ALL).getList(); 

正在刪除SMS:

通過將read sms正文的值存儲到sharedpreference並僅刪除處於sharedprefrence中的人來執行此操作。

Uri inboxUri = Uri.parse("content://sms/inbox"); 
int count = 0; 
Cursor c = getContentResolver().query(inboxUri , null, null, null, null); 
while (c.moveToNext()) { 
    try { 
     // Delete the SMS 
     String pid = c.getString(0); // Get id; 
     String uri = "content://sms/" + pid; 
     // uri. 
     count =getContentResolver().delete(Uri.parse(uri), 
       null, null); 
    } catch (Exception e) { 
     Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show(); 
    } 

} 

enter image description here

所有的Android內容提供商,如:聯繫人,通話記錄,日曆,... Full doc with all options

+0

我已經添加了所有相關的權限讀取短信,寫短信,internate訪問,並訪問手機狀態.. – Zilu

+0

@Zilu你的brodcast接收器在哪裏?發佈完整的代碼..然後我可以幫助你 – Gattsu

相關問題