Android-拨打电话自动添加IP地址(BroadcastReceiver)

来源:互联网 发布:mysql server安装失败 编辑:程序博客网 时间:2024/04/30 13:01

拨打电话自动添加IP地址

第一步:

添加权限:

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

第二步:

注册receiver

<receiver android:name=".CallReceiver">
      <intent-filter >
          <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
      </intent-filter>

</receiver>

第三步:

将IP地址存入SharedPreferences

SharedPreferences sp = getSharedPreferences("ip", MODE_PRIVATE);
sp.edit().putString("ipNumber", et.getText().toString()).commit(); 

第四步:

获取拨打的电话号码,从SharedPreferences 中取出IP地址加的电话号码前

SharedPreferences sp = context.getSharedPreferences("ip", Context.MODE_PRIVATE);
String ipNumber = sp.getString("ipNumber", "");

//把IP线路号码添加至用户拨打号码的前面
number = ipNumber + number;

//把新的号码重新放入广播中
setResultData(number);
//拦截广播
abortBroadcast();


AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"    package="com.itheima.ipdialer"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="17" />    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="com.itheima.ipdialer.MainActivity"            android:label="@string/app_name" >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <receiver android:name=".CallReceiver">            <intent-filter >                <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>            </intent-filter>        </receiver>    </application></manifest>

MainActivity.java

package com.itheima.ipdialer;import android.os.Bundle;import android.app.Activity;import android.content.SharedPreferences;import android.view.Menu;import android.view.View;import android.widget.EditText;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    public void click(View v){    EditText et = (EditText) findViewById(R.id.et);    SharedPreferences sp = getSharedPreferences("ip", MODE_PRIVATE);    sp.edit().putString("ipNumber", et.getText().toString()).commit();    }    }

CallReceiver.java

package com.itheima.ipdialer;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;public class CallReceiver extends BroadcastReceiver {//接收到广播时就会调用@Overridepublic void onReceive(Context context, Intent intent) {//添加IP线路//在打电话广播中,会携带拨打的电话的号码,通过以下代码获取到String number = getResultData();if(number.startsWith("0")){SharedPreferences sp = context.getSharedPreferences("ip", Context.MODE_PRIVATE);String ipNumber = sp.getString("ipNumber", "");//把IP线路号码添加至用户拨打号码的前面number = ipNumber + number;//把新的号码重新放入广播中setResultData(number);//拦截广播abortBroadcast();}}}




0 0
原创粉丝点击