赵雅智_BroadcastReceiver电话监听

AndroidManifest.xml

  1. 注冊广播接收者
  2. 加入权限
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android_ipphone"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="14"
        android:targetSdkVersion="19" />
    <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="com.example.android_ipphone.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="com.example.android_ipphone.receiver.CallBreadcastReceiver" >
            <intent-filter>
                <action android:name="android.intent.action.NEW_OUTGOING_CALL" />
            </intent-filter>
        </receiver>
    </application>

</manifest>

activity_main.xml

<RelativeLayout 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"
    tools:context="${packageName}.${activityClass}" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="设置外拨的ip" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_toRightOf="@+id/textView1"
        android:ems="10"
        android:text="17951"
        android:inputType="number" >

        <requestFocus />
    </EditText>

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_below="@+id/editText1"
        android:onClick="setIp"
        android:text="设置" />

</RelativeLayout>

MainActivity.java

package com.example.android_ipphone;

import android.app.Activity;
import android.content.Context;
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_ip;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		et_ip = (EditText) findViewById(R.id.editText1);
	}

	public void setIp(View v) {
		// 获取你要设置的ip
		String ipnum = et_ip.getText().toString().trim();
		// 保存在哪里
		SharedPreferences sp = getSharedPreferences("csdn",
				Context.MODE_PRIVATE);

		Editor editor = sp.edit();
		editor.putString("ip", ipnum).commit();

	}
}

CallBreadcastReceiver.java

package com.example.android_ipphone.receiver;

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

public class CallBreadcastReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		// 获取设置中的ip保存SharedPreference对象
		SharedPreferences sp = context.getSharedPreferences("csdn",
				Context.MODE_PRIVATE);
		// 获取保存外拨电话ip值
		String ipNum = sp.getString("ip", "");
		// 改变你拨打的电话信息
		// 获取电话号码
		String phoneNum = getResultData();
		// 改变后的电话号码
		String data = ipNum + phoneNum;
		// 设置返回的数据
		setResultData(data);
		//当前的BreadcastReceiver
		abortBroadcast();
	}

}

赵雅智_BroadcastReceiver电话监听

时间: 2024-10-29 01:00:12

赵雅智_BroadcastReceiver电话监听的相关文章

赵雅智_service电话监听2加接通电话录音

步骤: 创建CallStateService继承Service 取得电话服务 监听电话动作 电话监听的对象 没有电话时 停止刻录 重设 刻录完成一定要释放资源 电话响铃时 从麦克风采集声音 内容输出格式 音频编码方式 获取sd卡目录并存入 电话接通时 开始录制 电话监听的行为 启动service 注册service并添加监听电话状态的权限 监听电话状态权限 sd卡读写权限 音频录制权限 AndroidManifest.xml <?xml version="1.0" encodin

赵雅智_BroadcastReceiver

BroadcastReceiver  用于接收程序(包含用户开放的程序和系统内建程序)所发出的Broadcast intent 耗电量 开机启动 窃取别人短信 窃取别人电话 开发: 创建须要启动的BroadcastReceiver(包含启动的Intent系统已经创建的) 继承BroadcastReceiver类而且重写onReceive()方法 注冊广播接收者 静态注冊(配置文件)或者动态注冊(代码注冊) 调用Context的sendBroadcast或sendOrderBroadcast方法来

赵雅智_android实例_当监听类有数据更新时下拉刷新

之前两篇文章分别介绍了OnScrollListener的实现和ContentProvider监听数据的变化,下面我们就结合者两个知识点实现一个小项目 项目需求 使用当ContentProvider监听类有数据更新时,在当前界面进行提示,并用OnScrollListener实现下拉刷新 实现效果 通过ContentProvider显示数据在界面 当监听类发生变化时 下拉刷新后显示数据 实现步骤 android_sqlite项目 定义操作标识 匹配结果码 继承ContentProvider类重写方法

赵雅智_ProviderContent监听数据变化

当程序A在执行insert.update.delete时,通过getContext().getContentResolver().notifyChange(uri, observer)方法来告诉所有注册在该Uri的监听者数据发生改变 参数1uri:注册的uri 参数2observer:注册的监听者 /** * 插入操作 */ @Override public Uri insert(Uri uri, ContentValues values) { if (uriMatcher.match(uri)

赵雅智:android教学大纲

带下划线为具体内容链接地址,点击后可跳转,希望给大家尽一些微薄之力,目前还在整理中 教学章节 教学内容 学时安排 备注 1 Android快速入门 2 Android模拟器与常见命令 3 Android用户界面设计 4 Android网络通信及开源框架引用 5 线程与消息处理 6 数据存储及访问 7 Android基本单元应用activity 8 Android应用核心Intent 9 资源访问 10 ContentProvider实现数据共享 11 BroadcastReceiver 12 S

赵雅智_Android短信发送器

注意要点: 1)必须要在AndroidManifest.xml中添加发送短信权限<uses-permission android:name="android.permission.SEND_SMS" /> 设置视图:setContentView(R.layout.布局xml文件); 2)查找控件:findViewById(R.id.控件id); 3)监听按钮事件:控件.setOnClickListener(this),实现OnClickListener接口 4)获取edit

赵雅智_android_frame动画

在开始实例讲解之前,先引用官方文档中的一段话: Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画.Frame动画可以被定义在XML文件中,也可以完全编码实现. 如果被定义在XML文件中,我们可以放置在/res下的anim或drawable目录中(/res/[anim | drawable]/filename.xml),文件名可以作为资源ID在代码中引用:如果由完全由编码实现,我们需要使用到AnimationDrawable对象. 如果是将动画定义在XML

赵雅智_android系统联系人app分析并获取数据

手机联系人存放位置 和短信一样在data-data下 手机联系人数据库解析 将contacts2.db表导出,通过SQLiteexpert查看 mimetypes表:存放的数据类型(电话,头像,姓名,邮箱) 外键: raw_contacts表:存放联系人的id contact_id:联系人id display_name:联系人姓名 data表:存放联系人的数据 data1:联系人数据 data2:在mimetypes表中data1表示值得意义 mimetype_id:联系人ID,data数据所属

赵雅智_ListView_BaseAdapter

Android界面中有时候需要显示稍微复杂的界面时,就需要我们自定义一个adapter,而此adapter就要继承BaseAdapter,重新其中的方法. Android中Adapter类其实就是把数据源绑定到指定的View上,然后再返回该View,而返回来的这个View就是ListView中的某一行item. 这里返回来的View正是由我们的Adapter中的getView方法返回的.这样就会容易理解数据是怎样一条一条显示在ListView中的. 具体事例: 数据库我们还使用之前创建的 布局文