2016-08-14 20 views
1

Android LollipopとMarshmallowで特定の連絡先番号のメッセージをプログラムで削除します。Android LollipopとMarshmallowで受信トレイからメッセージを削除するかプログラムで送信する

私は、メッセージを読んで削除するには、次のコードを使用しています...しかし、このコードは、実際のメッセージは削除されません:

public List<Sms> getAllSms() { 
    try { 
     List<Sms> lstSms = new ArrayList<Sms>(); 
     Sms objSms = new Sms(); 
     Uri uriSms = Uri.parse("content://sms/"); 

     Cursor c = getActivity().getContentResolver().query(uriSms, new String[]{"_id", "thread_id", "address", "person", "date", "body"}, null, null, null); 

     getActivity().startManagingCursor(c); 
     int totalSMS = c.getCount(); 
     if (c.moveToFirst()) { 
      for (int i = 0; i < totalSMS; i++) { 
       long id = c.getLong(0); 
       long threadId = c.getLong(1); 
       String address = c.getString(2); 
       String body = c.getString(5); 
       String date = c.getString(3); 

       Log.e("log>>>", 
        "0--->" + c.getString(0) + "1---->" + c.getString(1) 
          + "2---->" + c.getString(2) + "3--->" 
          + c.getString(3) + "4----->" + c.getString(4) 
          + "5---->" + c.getString(5)); 
       Log.e("log>>>", "date" + c.getString(0)); 

       if (address.equals("1234567890")) { 
        // mLogger.logInfo("Deleting SMS with id: " + threadId); 

        getContext().getContentResolver().delete(
         Uri.parse("content://sms/" + id), null, null); 

        Log.e("log>>>", "Delete success........."); 
       } 
       c.moveToNext(); 
      } 
     } else { 
      throw new RuntimeException("You have no SMS "); 
     } 
     c.close(); 
     return lstSms; 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

マニフェスト権限:

<uses-permission android:name="android.permission.WRITE_SMS"/> 
<uses-permission android:name="android.permission.READ_SMS"/> 

をするについての私を助けてくださいメッセージを削除します。

OR

は私に次の操作を行うための方法を提案する:

私は上記のAndroidバージョンの両方でプログラム的にバックグラウンドでメッセージを送信する場合、それが送られたフォルダまたはどこかのデバイスでメッセージを保存するべきではありません。

答えて

4

私はあなたが完全にSMSクライアントを作成する必要がありますアンドロイドロリポップとマシュマロでプログラム

を特定の連絡先番号のメッセージを削除したいです。

APIレベル19以上のメッセージのみを削除するアプリを実装することはできません。ユーザーは、あなたのアプリをデフォルトのSMSアプリにすることはありません。あなたのアプリがデフォルトのSMSアプリでない場合、「あなたのアプリは、メッセージを下書きとしてマークしたり、それらを読み取り済みとしてマークしたり、削除したりするなど、他の操作のためにSMSプロバイダに書き込むことができません。詳細については、this official blog postを参照してください。

上記の両方のAndroidバージョンでプログラムでバックグラウンドでメッセージを送信する方法を教えてください。送信フォルダやデバイス内のどこにも保存しないでください。

送信されたSMSメッセージの処理は、Android、ユーザーのデフォルトのSMSクライアント、場合によってはユーザーによって決まります。あなたは投票をしません。

関連する問題