1、继承广播接收者类
1 package com.example.ipdail; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 import android.content.SharedPreferences; 7 8 public class OutCallReceiver extends BroadcastReceiver { 9 10 @Override 11 public void onReceive(Context context, Intent intent) { 12 // TODO Auto-generated method stub 13 //获取拨打的号码 14 String number = getResultData(); 15 //获取config数据里面的数据 16 SharedPreferences sp = context.getSharedPreferences("config", context.MODE_PRIVATE); 17 String ipnumber = sp.getString("ipnumber", ""); 18 19 //修改号码并返回 20 String newNumber = ipnumber + number; 21 setResultData(newNumber); 22 } 23 24 25 }
2、在清单文件配置广播接收者(因为属于四大组件之一),并通过action来表名要监听的频道
1 <receiver android:name=".OutCallReceiver"> 2 <intent-filter> 3 <action android:name="android.intent.action.NEW_OUTGOING_CALL"></action> 4 </intent-filter> 5 </receiver>
3、由于要监听外拨电话,所以要加一个权限
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
4、其他java代码
1 package com.example.ipdail; 2 3 import android.os.Bundle; 4 import android.app.Activity; 5 import android.content.SharedPreferences; 6 import android.content.SharedPreferences.Editor; 7 import android.view.Menu; 8 import android.view.View; 9 import android.widget.EditText; 10 11 public class MainActivity extends Activity { 12 13 private EditText et_ipnumber; 14 15 private SharedPreferences sp; 16 @Override 17 protected void onCreate(Bundle savedInstanceState) { 18 super.onCreate(savedInstanceState); 19 setContentView(R.layout.activity_main); 20 et_ipnumber = (EditText)findViewById(R.id.et_ipnumber); 21 sp = getSharedPreferences("config", MODE_PRIVATE); 22 et_ipnumber.setText(sp.getString("ipnumber", "")); 23 } 24 25 public void click(View view){ 26 String ipnumber = et_ipnumber.getText().toString().trim(); 27 28 Editor editor = sp.edit(); 29 editor.putString("ipnumber", ipnumber); 30 editor.commit(); 31 } 32 }