I m new to Android. I m developing an app which blocks unwanted calls. Now I m stuck here when I try to compare the incoming number with the numbers in contact. Here is the code. Please help. Here while checking a Checkbox I need to block all calls from strangers (not in the contact)
Bundle extra=intent.getExtras();//new
telephonyManager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
if(extra!=null)//new=== getting the blocked number {
state=extra.getString(telephonyManager.EXTRA_STATE);
if(state.equals(telephonyManager.EXTRA_STATE_RINGING)) {
number=extra.getString(telephonyManager.EXTRA_INCOMING_NUMBER);
Log.w("INCOMMING NUMBER",number);
}
}
if(noStrangers_cb.isChecked()){
Cursor phones1 = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones1.moveToNext()){
String phoneNumber = phones1.getString(phones1.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.d("NUMBER IN CONTACT",phoneNumber );
//boolean val= number== phoneNumber;
//String no=number;
//Log.d("ASSIGNING NUMBER TO NO = ", no);
//Collator c=Collator.getInstance();
if(!phoneNumber.equals(number))
{
Log.d("IF ", "STRANGERS"+number);
//Log.d("NUMBER CHECKING", "NUMBER = "+number+"CONTACT = "+phoneNumber);
try {
telephonyService.endCall();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
phones1.close();
}//end if Strangers
LOGCAT:
最新代码如下:
if(allContacts_cb.isChecked())
{
Log.d("BLOCK ALL CONTACTS","blocking contacts.........." );
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext())
{
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.d("NUMBER IN CONTACT ",phoneNumber );
String num=phoneNumber.replace("-","");
String incom=incomingNumber;
String s1="0"+num;
String s2="+91"+num;
if((num.equals(incomingNumber))||((s1).equals(incomingNumber))||(s2).equals(incomingNumber))//if(phoneNumber.compareTo(no)==0)//&&(checking==true))
{
Log.d("IF ", "INSIDE IF OF BLOCKING CONTACTS");//+cn+"num"+n);
Log.d("NUMBER CHECKING", "NUMBER = "+number+"CONTACT = "+phoneNumber);
try {
ending1=telephonyService.endCall();
if(ending1)
{
for(int i=1;i<=1;i++)
{
android.telephony.SmsManager sms = android.telephony.SmsManager.getDefault();
sms.sendTextMessage(incom, null, SMS, null, null);
break;
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
else
{
if(noStrangers_cb.isChecked())
{
try {
telephonyService.endCall();
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}//end of while
phones.close();
}//end if allContacts
任何人都可以帮助我.. 求你了..