广播与服务——IP拨号器前加17951

来源:互联网 发布:vb picturebox 保存为 编辑:程序博客网 时间:2024/09/21 08:17

动态注册 广播接收者:

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);IntentFilter intentFilter = newIntentFilter("android.intent.action.MEDIA_UNMOUNTED");intentFilter.addDataScheme("file");registerReceiver(new SDCardUnmountedReceiver(),intentFilter);System.out.println("广播接收器已经注册成功。");}}


输入拨号需要加入的数据,  如17951, 存入SharedPreferences 

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();    }    }
定义一个广播接受者

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();}}}

对于接受何种类型的广播,在清单文件中添加:

  <receiver android:name=".CallReceiver">            <intent-filter >                <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>            </intent-filter>        </receiver>
这里定义针对 拨打电话时发送的广播, 上面代码接受到拨打电话发送的广播后, 拦截, 执行添加前缀的代码。


0 0
原创粉丝点击