这是一个通过广播接收者来实现的拦截电话号码的例子

TeleBroadcastReceiver.java

package com.lk.msmlistener;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class TeleBroadcastReceiver extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String telFrom = getResultData();
        if("5556".equals(telFrom)) {
            setResultData(null);            //当给5556打电话时,拦截拨打
        } else {
            setResultData("17951" + telFrom); //当给其他人电话时,在开头加上17951
        }
    }
}

 

在清单文件中配置权限和声明BroadcastReceiver

    <!-- 拨打电话号码时获取电话号码的权限 -->
    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
        <receiver 
            android:name="com.lk.msmlistener.TeleBroadcastReceiver">
            <intent-filter android:priority="1000">
                <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
            </intent-filter>
        </receiver>

 

posted on 2014-03-30 13:43  寒岁青松  阅读(404)  评论(0编辑  收藏  举报