确定拨打的号码是否在联系人列表中

时间:2011-09-22 05:48:03

标签: android android-emulator

我正在尝试编写我的第一个Android应用程序。来自winmobile手机,有一个选项来阻止我的传出来电显示,而不是Android。 我已经启动了一个小应用程序,它将为传出呼叫添加* 67问题是它为每个呼叫添加* 67,我不想将此添加到我的联系人列表中的人,这样他们就可以看到我的那就是呼叫。我只想阻止我的来电显示为未知号码

这是迄今为止的所有代码及其在模拟器中的工作,基础知识来自http://androidcookbook.com/Recipe.seam?recipeId=1151

public class OutgoingCallInterceptor extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

    final String originalNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);

    String myNumber = originalNumber;
    String msg3 = "Caller Id Already Blocked " + myNumber;
    String msg4 = "Blocking Caller Id " + myNumber;

    if(myNumber.contains("*67") == true)  
    {  
                Toast.makeText(context, msg3, Toast.LENGTH_LONG).show();
        this.setResultData(originalNumber);

    } else {  
            Toast.makeText(context, msg4, Toast.LENGTH_LONG).show();
        this.setResultData("*67" + originalNumber);
        final String newNumber = this.getResultData();
        String msg = "Caller Id Blocked - Old number " + originalNumber + ", new number " + newNumber;
        Toast.makeText(context, msg, Toast.LENGTH_LONG).show();

    } 

 }}

有人能指出我在正确的方向吗?我不知道如何检查联系人列表中的拨号号码

1 个答案:

答案 0 :(得分:0)

你问的是你想要获取通话记录的详细信息。你可以这样做:

Uri UriCalls = Uri.parse("content://call_log/calls");
Cursor cursor = getContentResolver().query(UriCalls, null, null, null, null);

请参阅此doc以获得更明确的信息。