最近在做一个项目,需要在自己写的应用中调用打电话给别人的功能,不用多说。直接把代码贴出来。
public class PhoneCall {
public static final String PARAM_CALL_DONE = "CALL_DONE";
public static void call(String phoneNumber, Activity activity) {
CallEndedListener.createListenerFor(activity);
Intent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + phoneNumber));
activity.startActivity(callIntent);
}
private static class CallEndedListener extends PhoneStateListener {
private boolean called = false;
private final TelephonyManager telephonyManager;
private final Context context;
private Activity activity;
private CallEndedListener(Activity act) {
this.context = act.getBaseContext();
this.activity = act;
this.telephonyManager = (TelephonyManager) context
.getSystemService(Activity.TELEPHONY_SERVICE);
}
public static void createListenerFor(Activity act) {
CallEndedListener listener = new CallEndedListener(act);
listener.telephonyManager.listen(listener, LISTEN_CALL_STATE);
}
@Override
public void onCallStateChanged(int state, String incomingNumber) {
if (called && state == TelephonyManager.CALL_STATE_IDLE) {
called = false;
telephonyManager.listen(this, PhoneStateListener.LISTEN_NONE);
try {
Intent t = new Intent(context, activity.getClass());
t.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
t.putExtras(activity.getIntent());
t.putExtra(PARAM_CALL_DONE, true);
t.setAction(Intent.ACTION_MAIN);
activity.finish();
activity = null;
context.startActivity(t);
} catch (Exception e) {
e.printStackTrace();
}
} else {
if (state == TelephonyManager.CALL_STATE_OFFHOOK) {
called = true;
}
}
}
}
}
代码就不详细解释了,大家可以参照ADK API查看。O(∩_∩)O~~~~~~
分享到:
相关推荐
悬浮窗,大家应该也不陌生,凌驾于应用之上的一个小弹窗,实现上很简单,就是添加一个系统级别的窗口,Android中通过WindowManagerService( WMS)来管理所有的窗口,对于WMS来说,管你是Activity、Toast、Dialog,...
运用Android Studio实现打电话和发短信的功能,对应权限 Manifest.permission.CALL_PHONE和Manifest.permission.SEND_SMS
宠物管理Android应用程序后端基于SSM实现宠物管理Android应用程序后端基于SSM实现宠物管理Android应用程序后端基于SSM实现宠物管理Android应用程序后端基于SSM实现宠物管理Android应用程序后端基于SSM实现宠物管理...
该资源包含了一个android实现的简单的应用锁,喜欢的下载。
Android应用源码使用listView实现的树状结构.rar Android应用源码俄罗斯方块注释超详细版.rar Android应用源码利用poi将内容填到word模板.rar Android应用源码动态列表布局.rar Android应用源码单Java文件实现的...
android中调用相机相册,的功能是非常常见的,这是一个简单例子,供大家交流,下载
Android应用源码之android打电话源码.zip
第2篇为应用开发篇,通过实例介绍了Android UI布局、Android人机界面、手机硬件设备的使用、Android本地存储系统、Android中的数据库、多线程设计、Android传感器、Android游戏开发基础、Android与Internet,以及...
Android应用自动更新代码实现,完美实现代码的自动更新。
android 应用程序基本实现. 是学习的基础篇
//拔打电话号码 //"android.intent.action.CALL" Intent intent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:"+ mobile)); startActivity(intent);//内部会添加android.intent.category.DEFAULT
Android 应用 更换皮肤(zip实现)
Android中调用相机拍照之后裁剪得到的照片的源码
一个简单的使用Android Studio写的获取通讯录内容并且打电话发短信,如果安装完后APP闪退,请到设置中权限将相应的权限给他。
Android 实现在所有应用上显示View
Android应用源码之android打电话源码.zip项目安卓应用源码下载Android应用源码之android打电话源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考
Android高级应用源码-android打电话源码.zip
这个demo实现了android开发应用内下载安装apk升级版本的功能,非常简便轻量集成,完全原生代码即可实现,无需第三方框架。。。
基于Android的应用商店APP的实现,主要采用Android技术,及JAVA语言,Android studio开发环境,在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等...