Android电话拨号器的实现
2016-02-12 16:14
609 查看
[1]创建广播接受者
[2]在Manifest中进行配置
[3]使用SP来保存配置信息,完成数据处理
//MainActivity
//OutGoingCallReceivce
[2]在Manifest中进行配置
<?xml version="1.0" encoding="utf-8"?> <manifest package="jacky.ipdail" xmlns:android="http://schemas.android.com/apk/res/android"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <receiver android:name=".OutGoingCallReceivce"> <intent-filter> <!-- 配置广播接收者 --> <action android:name="android.intent.action.NEW_OUTGOING_CALL"></action> </intent-filter> </receiver> </application> <!-- 添加权限 --> <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"></uses-permission> </manifest>
[3]使用SP来保存配置信息,完成数据处理
//MainActivity
package jacky.ipdail; import android.content.SharedPreferences; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private EditText et_number; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_number = (EditText) findViewById(R.id.et_number); } public void save(View v){ String number = et_number.getText().toString().trim(); //使用SP保存配置信息 SharedPreferences sp = getSharedPreferences("config", 1); sp.edit().putString("number",number).commit(); Toast.makeText(getApplicationContext(),"保存成功",Toast.LENGTH_LONG).show(); } }
//OutGoingCallReceivce
package jacky.ipdail; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.SharedPreferences; /** * 作者:Jacky * 邮箱:550997728@qq.com * 时间:2016/2/12 15:22 */ public class OutGoingCallReceivce extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { SharedPreferences sp = context.getSharedPreferences("config",1); String number = sp.getString("number", "0"); //拿到拨打的号码 String currentNumber = getResultData(); //判断是否为长途 if (currentNumber.startsWith("0")) { //修改拨打的号码 setResultData(number+currentNumber); } } }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories