android四大组件之BroadcastReceiver ip拨号功能

BroadcastReceiver是广播接收者,系统会在产生事件的时候发送一些广播,比如开机,打电话,等等……

而BroadcastReceiver就可以接收到这些广播从而进行操作。

今天我们要做的就是在拨打号码的时候加上前面的ip号。

首先我们要注册一个BroadcastReceiver,然后我们要在清单文件里配置一些信息首先我们要明确这个BroadcastReceiver 要接收什么样的

广播。

<receiver android:name="com.example.ipcall.MyReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
                
            </intent-filter>
        </receiver>

这个就可以确定接收的是打电话时候发送的广播,然后在权限里还要加上

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

package com.example.ipcall;

import android.os.Bundle;
import android.app.Activity;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.EditText;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.btn).setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                EditText edt = (EditText) findViewById(R.id.ip);
                String ipnumber = edt.getText().toString();
                SharedPreferences sp = getSharedPreferences("number",MODE_PRIVATE);
                Editor editor = sp.edit();
                editor.putString("ip",ipnumber).commit();
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}
package com.example.ipcall;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;

public class MyReceiver extends BroadcastReceiver {
    public MyReceiver() {
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        // TODO: This method is called when the BroadcastReceiver is receiving
        // an Intent broadcast.
        System.out.println("打电话了");
        //得到打电话的号码
        String number = getResultData();
        SharedPreferences sp = context.getSharedPreferences("number",context.MODE_PRIVATE);
        String ip = sp.getString("ip","");
        //设置打电话的好啊
        setResultData(ip+number);

    }
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <EditText
        android:id="@+id/ip"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入"/>

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

</LinearLayout>
时间: 2024-12-15 06:32:47

android四大组件之BroadcastReceiver ip拨号功能的相关文章

Android 四大组件 (三) BroadcastReceiver 介绍

一. BroadcastReceiver 使用场景 Broadcast主要是用作消息通信(专业术语叫IPC),Android的IPC基本都是binder来实现,那么这里的BroadcastReceiver其实也是对binder的一个封装,方便上层调用.开发过程中遇到的单进程多线程通信的场景比较多,所以这种情况下使用Broadcast并不是最佳选择,很多人会自己实现一套 Observer 或者使用EventBus等第三方库来完成该功能,不可否认,他们在这种场合下不论是效率还是灵活性方面都更具优势.

Android四大组件之BroadcastReceiver详细解析

什么是BroadcastReceiver? BroadcastReceiver作为Android四大组件之一,在实际开发中也发挥着重要的作用,广播机制在Android程序通信中至关重要,广播其实与我们现实生活中的电台很相似,电台在某个频道上发送它的内容,那么只要有在收听这个频道的人都会收到这些内容.在Android中,广播也同样分为两个角色:广播发送者.广播接收者. BroadcastReceiver的应用场景 1.在一个应用中,我们的Activity与Service的通信就需要用到广播来作为中

Android四大组件之BroadcastReceiver

广播接收者  现实中:电台要发布消息,通过广播把消息广播出去,使用收音机,就可以收听广播,得知这条消息 Android中:系统在运行过程中,会产生会多事件,那么某些事件产生时,比如:电量改变.收发短信.拨打电话.屏幕解锁.开机,系统会发送广播,只要应用程序接收到这条广播,就知道系统发生了相应的事件,从而执行相应的代码.使用广播接收者,就可以收听广播 创建广播接收者 1. 定义java类继承BroadcastReceiver 2. 在清单文件中定义receiver节点,定义name属性,指定广播接

Android四大组件之~~BroadcastReceiver

声明:转载请注明出处:http://blog.csdn.net/Hello_Chillax/article/details/45672601 开题:对android稍微有些了解的朋友都知道,android中有四大组件,分别是:Activity,Service,ContentProvider,BroadcastReceiver.今天来介绍其一:BroadcastReceiver. BroadcastReceiver:顾名思义,广播接收者,可以接收系统,其他应用等等发送的广播进而做出相应的反应.比如

android四大组件之BroadcastReceiver短信拦截功能

首先我们要配置一些清单文件 <receiver android:name="com.example.smslinser.MyReceiver" >            <intent-filter android:priority="1000">                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>   

Android 四大组件之 BroadCastReceiver

BroadCastReceiver是一种全局的监听器.用于监听系统全局的广播消息.由于他是一种全局的监听器,所以他可以轻松实现,系统中不同组件之间的通信. 1.创建BroadCastReceiver public class MyReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // 当监听到广播消息时,执行这个方法. String cont

android四大组件之BroadcastReceiver开机启动

和其他BroadcastReceiver一样需要配置接收的广播信息,然后配置权限 <receiver            android:name="com.example.kaijistart.BootReceiver" >            <intent-filter >                <action android:name="android.intent.action.BOOT_COMPLETED"/&g

Android实训案例(六)——四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听

Android实训案例(六)--四大组件之一BroadcastReceiver的基本使用,拨号,短信,SD卡,开机,应用安装卸载监听 Android中四大组件的使用时重中之重,我这个阶段也不奢望能把他所有的原理搞懂,但是最起码的,我要把他的各种使用方法了如指掌才行 BroadcastReceiver 接收系统的广播,比如电话,短信之类的 1.IP拨号器 我们在拨打电话的时候,我们系统也会事先发送一个广播,所以我们可以用广播接收者来接收到这个广播拨打电话的时候在电话号码前面加上一些优惠的长途短号,

android四大组件之广播接收器BroadcastReceiver

Android有一个非常重要的特性,就是广播.也可以将广播看做是通信机制.  Android四大组件: Activity, service, broadcastReceiver 和contentProvider, 只有Activity和service有完整的生命周期, 其他 broadcastReceiver 和contentProvider 都没有.  broadcastReceiver 本质上是一个监听器, 负责监听系统应用发出的广播(BroadCast). broadcastReceive