首先,新建一个类,继承于BroadcastReceive,然后去配置Manifest.xml

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

然后加上android.permission.PROCESS_OUTGOING_CALLS权限(一定要记得加,不要加错了)

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

接下来写业务逻辑就行了,那就简单了

首先是MainActicity:

 public class MainActivity extends Activity implements View.OnClickListener {

     EditText et;
     @Override
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.activity_main);

         Button btn = (Button)findViewById(R.id.btn);
         et = (EditText) findViewById(R.id.et);
         btn.setOnClickListener(this);
     }

     @Override
     public void onClick(View view) {
         String str = et.getText().toString().trim();
         SharedPreferences sp= getSharedPreferences("config",0);
         sp.edit().putString("ipnumber",str).commit(); //一定记得提交
         Toast.makeText(this,"ip设置成功",Toast.LENGTH_SHORT).show();
     }
 }

然后就是我们刚新建的那个类了

 public class PhoneOnReceice extends BroadcastReceiver {
     @Override
     public void onReceive(Context context, Intent intent) {
         SharedPreferences sp = context.getSharedPreferences("config",0);
         String ip = sp.getString("ipnumber","");
         String currentNumber = getResultData();//获取当前要拨打的电话号码
         System.out.println("广播调用成功");
         if (currentNumber.startsWith("0")){
             System.out.print("进入if中");
             setResultData(ip+currentNumber);
         }
     }
 }

当Mainfest.xml中的action执行的时候,就会执行BroadcastReceiver子类PhoneOnReceive中的onReceice方法。

注意其中的getResultData():是用来得到当前输入的手机号码的

BroadcastReceive之ip拨号的更多相关文章

  1. 无废话Android之activity的生命周期、activity的启动模式、activity横竖屏切换的生命周期、开启新的activity获取他的返回值、利用广播实现ip拨号、短信接收广播、短信监听器(6)

    1.activity的生命周期 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环: (1)Activity的完整生命周期 自第一次调用onCrea ...

  2. Android开发之IP拨号器原理

    IP拨号器,使用了Android的广播接收者(BroadCastReceiver),在广播中把已保存的ip号码放在拨打电话号码的前面(getResultData()),然后把修改后的号码设置到广播中( ...

  3. android 监听去电实现ip拨号 广播接收者

    利用广播实现ip拨号 布局文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout x ...

  4. 广播接收者实现IP拨号

    广播接收者实现IP拨号 效果图: 实现的功能就是自动监听我们要拨打的号码,在我们拨打的号码前加上179521 分析: 1.敲个类来继承广播接收者 并且将从打电话应用位置获取的号码加上179521,并将 ...

  5. Android初级教程IP拨号器初识广播接受者

    需求:输入ip号码并且保存在本地,监听打电话广播,如果电话号码以0开头,则加上ip区号拨打. 首先定义一个页面布局: <LinearLayout xmlns:android="http ...

  6. [android] 利用广播实现ip拨号

    广播接收者,broadcast receiver,安卓系统在使用时会产生很多的事件,比如:短信到来,电量低,拨打电话等等 界面布局,线性布局,EditText指定为电话号码,设置属性android:i ...

  7. ADSL 动态IP拨号VPS 软件配置

    http://yun.baidu.com/share/link?uk=2520566727&shareid=330788421&third=0&adapt=pc&fr= ...

  8. 利用广播实现ip拨号——示例

    1.创建activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/androi ...

  9. IP拨号器

    是一个最终的接收者 package com.example.ip; import android.content.BroadcastReceiver; import android.content.C ...

随机推荐

  1. iOS打包Framework真机和模拟器兼容合并版本 - 详细攻略步骤

    打包Framework,测试时: 1.用模拟器打包,测试时只能跑在模拟器 2.用真机打包,测试时只能跑在真机 那么怎么做到一个版本兼容以上两种场景呢? 解决如下: 1.打开终端 2.输入   lipo ...

  2. 初识JNI

    需要用到NDK Android 平台从诞生起,就已经支持 C.C++开发.众所周知,Android 的 SDK 基于 Java 实现,这意味着基于 Android SDK 进行开发的第三方应用都必须使 ...

  3. kernel启动console_init之前console不可用时发生crash的调试方法

    http://code.google.com/p/innosoc/wiki/KernelBootCrashDebug 注: 如在i386_start_kernel中加入:early_printk(&q ...

  4. 基于Qt5.5.0的sql,C++备忘录软件的编写

    我的第一个软件. 基于Qt5.5.0的 sql ,C++备忘录软件version1.0的编写 我用的Qt版本是5.5.0免配置编译器的版本,这里附上我使用的软件下载地址:http://download ...

  5. redis安装及基础操作(1)

    ============================================================= 编译安装 0.环境 Linux:centos6.5 redis:3.0.5 ...

  6. 【OpenWRT之旅】LuCI探究

    1. 多语言 1)检查: opkg list | grep luci-i18n- 2)安装语言包: opkg install luci-i18n-hungarian   2.uhttpd 这个是LuC ...

  7. 学习OpenStack之 (4): Linux 磁盘、分区、挂载、逻辑卷管理 (Logical Volume Manager)

    0. 背景: inux用户安装Linux操作系统时遇到的一个常见的难以决定的问题就是如何正确地评估各分区大小,以分配合适的硬盘空间.普通的磁盘分区管理方式在逻辑分区划分好之后就无法改变其大小,当一个逻 ...

  8. 使用Openswan接入Windows Azure Site to Site VPN

    Winodows Azure的Site to Site VPN支持主流的防火墙和路由器等接入设备.具体型号和系列请参考下表: VENDOR DEVICE FAMILY MINIMUM OS VERSI ...

  9. 浏览器默认样式(user agent stylesheet)+cssreset

    每种浏览器都有一套默认的样式表,即user agent stylesheet,在写网页时,没有指定的样式,按浏览器内置的样式表来渲染.这是合理的,像word中也有一些预留样式,可以让我们的排版更美观整 ...

  10. [转]Using Entity Framework (EF) Code-First Migrations in nopCommerce for Fast Customizations

    本文转自:https://www.pronopcommerce.com/using-entity-framework-ef-code-first-migrations-in-nopcommerce-f ...