If you asked a specific question, you *may* get an answer (maybe 10% of the time), but basically asking to fix your app will not get an answer for certain.
On Jul 29, 6:22 pm, Leonardo <stone198...@gmail.com> wrote: > Hi, guys, > I made a app to block some junk messages. That app would delete the messages > from the senders specified in the ban list. That app works in a way, but has > some defects, as follows, > 1. Sometime it just doesn't work, missing the new message to delete. > 2. Even if it works deleting the message, a notification sound and message > still occur. > Therefore, could any improvement be made to 100% block messages without any > notifications? > Please check the codes below, and see what I can do. > Thank you. > > ======================================================================================== > > import android.app.Activity; > import android.content.BroadcastReceiver; > import android.content.Context; > import android.content.ContextWrapper; > import android.content.Intent; > import android.content.SharedPreferences; > import android.database.Cursor; > import android.net.Uri; > import android.os.Bundle; > import android.telephony.SmsMessage; > import android.util.Log; > import android.widget.Toast; > > public class MySMSReceiver extends BroadcastReceiver > { > private static final String mACTION = > "android.provider.Telephony.SMS_RECEIVED"; > private String str_numbers, current_number; > private int killed; > public static final String PREFS_NAME = "LEONARDO_JUNKILLER_PREFS"; > private String[] numbers; > Cursor cursor; > > @Override > public void onReceive(Context context, Intent intent) > { > //get the banned numbers list from application's preference > SharedPreferences settings = context.getSharedPreferences(PREFS_NAME, > 0); > str_numbers = settings.getString("NUMBERS", null); > killed = settings.getInt("KILLED", 0); > if (str_numbers == null) > { > return; > } else > { > numbers = str_numbers.split("\\s+"); > for(String number:numbers) > { > number.trim(); > } > } > > //check if it is a message > if (intent.getAction().equals(mACTION)) > { > // get the content from the intent > Bundle bundle = intent.getExtras(); > if (bundle != null) > { > Object[] myOBJpdus = (Object[]) bundle.get("pdus"); > SmsMessage[] messages = new SmsMessage[myOBJpdus.length]; > for (int i = 0; i < myOBJpdus.length; i++) > { > messages[i] = SmsMessage.createFromPdu((byte[]) myOBJpdus[i]); > } > //for each message in the intent, check if it is a junk message and > delete it if so. > for (SmsMessage currentMessage : messages) > { > // get the sender's number for that message > current_number = currentMessage.getDisplayOriginatingAddress(); > // if the number is in the ban list, then find and delete all of > the received messages belonging to that number, including the new one and > existing ones. > if (toKill(current_number)) > { > cursor = context.getContentResolver().query( > Uri.parse("content://sms/"), > new String[]{"_id", "thread_id", "address"}, > "address=\"" + current_number + "\"", > //"address=" + current_number, > null, > null); > > if (cursor.moveToFirst()) > { > do > { > Log.i("JUNKILLER", "The message id:" + cursor.getString(0) + > ";address:" + cursor.getString(2) + " is deleted"); > Uri mUri = Uri.parse("content://sms/" + > cursor.getString(0)); > context.getContentResolver().delete(mUri, null, null); > killed++;//count the deleted messages for a banned number. > } while (cursor.moveToNext()); > } > cursor.close(); > } > } > } > } > SharedPreferences.Editor editor = settings.edit(); > editor.putInt("KILLED", killed); > editor.commit(); > } > > private boolean toKill(String number_check) > { > for (String number : numbers) > { > if (number_check.indexOf(number) >= 0) > { > return true; > } > } > return false; > } > > > > }- Hide quoted text - > > - Show quoted text - -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en