广播接收者,broadcast receiver,安卓系统在使用时会产生很多的事件,比如:短信到来,电量低,拨打电话等等

界面布局,线性布局,EditText指定为电话号码,设置属性android:inputType=”phone”

获取SharedPreference对象,调用getSharedPreference(“config”,MODE_PRIVATE)方法

获取Editor对象,调用sp对象的edit()方法

调用Editor对象的putString(key,value)方法,存入数据

调用Editor对象的commit()方法,提交

调用sp对象的getString(name,defValue)方法,获取到存入的数据

新建一个类OutRecevier继承 BroadcastReceiver

在清单文件中进行配置

添加<Receiver/>节点,设置名称属性android:name=”.OutReceiver”

设置意图过滤器添加节点<intent-filter>

设置过滤节点,添加动作<action/>,

设置名称android:name=”android.intent.action.NEW_OUTGOING_CALL” 关心打电话这个动作

当有上面动作的广播产生的时候,就会调用OutReceiver里面的onReceive()方法

需要添加权限,android.permission.PROCESS_OUTGOING_CALL

调用broadcastReciiver对象的getResultData()方法,可以得到传递的数据,如果打电话能获取到号码

调用Context对象的getSharedPreferences()方法,获取到sp对象

调用sp对象的getString()方法,获取到存入的数据

把获取到的号码拼接上,我们存的ip号码

调用setResultData()方法,把数据给他替换掉

MainActivity.java(主界面)

package com.tsh.ipdaili;

import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText; public class MainActivity extends Activity {
private EditText et_ipnum; @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_ipnum=(EditText) findViewById(R.id.et_ipnum);
SharedPreferences sp=getSharedPreferences("config", MODE_PRIVATE);
String ipnum=sp.getString("ipnum", "");
et_ipnum.setText(ipnum);
}
/**
* 保存
* @param v
*/
public void click(View v){
String ipnum=et_ipnum.getText().toString().trim();
SharedPreferences sp=getSharedPreferences("config", MODE_PRIVATE);
Editor editor=sp.edit();
editor.putString("ipnum", ipnum);
editor.commit(); }
}

OutReceiver.java(拦截电话广播)

package com.tsh.ipdaili;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences; public class OutReceiver extends BroadcastReceiver {
/**
* 接收广播
*/
@Override
public void onReceive(Context context, Intent intent) {
SharedPreferences sp=context.getSharedPreferences("config", Context.MODE_PRIVATE);
String ipnum=sp.getString("ipnum", "");
String num=getResultData();
setResultData(ipnum+num);
} }

AndroidManifest.xml (清单文件)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tsh.ipdaili"
android:versionCode="1"
android:versionName="1.0" > <uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="23" />
<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=".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=".OutReceiver">
<intent-filter >
<action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
</intent-filter>
</receiver>
</application> </manifest>

[android] 利用广播实现ip拨号的更多相关文章

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

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

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

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

  3. Android利用广播监听设备安装和卸载应用程序

    MainActivity如下: package cn.testappaddandremove; import android.os.Bundle; import android.app.Activit ...

  4. Android 利用广播接收器启动服务

    public class MainActivity extends Activity { private Button bt ; protected void onCreate(Bundle save ...

  5. Android利用广播监听设备网络连接(断网)的变化情况

    http://www.open-open.com/lib/view/open1379302453943.html

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

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

  7. android之广播(一)

    Android中的广播 系统在运行过程中会产生很多事件,某些事件产生的时候,比如:电量的改变,收发短信.拨打电话.屏幕解锁.开机等等,系统会发送广播.只要应用程序接受到这条广播就知道系统发生了相应的事 ...

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

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

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

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

随机推荐

  1. 剑指C++面试

    传闻公司老总欠下巨款,带着小姨子跑路了~  树倒猢狲散,接下来要好好准备面试,以期找到一份满意的工作. 面试准备分下面几个方面进行,形成面试系列文章,文章内容以问答的方式呈现. 1.C++语言基础 传 ...

  2. 1.1.1 PROB Your Ride Is Here

    === /* ID: luopengting PROG: ride LANG: C++ */ #include <iostream> #include <cstdio> #in ...

  3. 工作jQuery基础复习(一)

    1.prop() 方法 设置或者返回被选元素的属性和值 当该方法用于返回属性值时,则返回第一个匹配元素的值 当该方法设定属性值时,则为匹配元素集合设置一个或者多个属性/值对

  4. PostgreSQL查看表、表索引、视图、表结构

    -- 表索引select * from pg_indexes where tablename='person_wechat_label';select * from pg_statio_all_ind ...

  5. 【渗透攻防】千变万化的WebShell

    前言WebShell就是以asp.php.jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门.本篇文章将带大家学习如何获取WebShell,如何隐藏WebShell,有 ...

  6. 小程序如何获取code

    小程序如何获取code <button open-type="getUserInfo" hover-class='none' bindgetuserinfo="ge ...

  7. 从前端中的IOC理念理解koa中的app.use()

    忙里偷闲,打开平时关注的前端相关的网站,浏览最近最新的前端动态.佼佼者,平凡的我做不到,但还是要争取不做落后者. 前端中的IoC理念,看到这个标题就被吸引了.IoC 理念,不认识呢,点击去一看,果然没 ...

  8. java为什么用咖啡?

    2000年度的JavaOne国际会议大厅热闹非凡,一阵阵浓郁的咖啡味儿香气扑鼻.从世界各地汇集到旧金山参加会议的Java精英们兴奋异常,排着长队,等待得到一杯由Java语言控制的咖啡机煮制的免费咖啡. ...

  9. MongoDB从入门到优化

    目录 一.MongoDB 简介 二.MongoDB 的储存引擎 三.mongodb 配置参数 四.MongoDB 单节点搭建 五.MongoDB 连接 六.MongoDB 常用命令 七.MongoDB ...

  10. SpringCloud实战9-Stream消息驱动

    官方定义 Spring Cloud Stream 是一个构建消息驱动微服务的框架. 应用程序通过 inputs 或者 outputs 来与 Spring Cloud Stream 中binder 交互 ...