`
fokman
  • 浏览: 241074 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

在自己的android应用中调用打电话实现

 
阅读更多

    最近在做一个项目,需要在自己写的应用中调用打电话给别人的功能,不用多说。直接把代码贴出来。

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 Studio实现打电话和发短信

    总的来说,要在Android Studio项目中实现打电话和发短信的功能,你需要在`AndroidManifest.xml`中声明权限,根据需要在运行时请求权限,并正确构建和使用`Intent`。这个过程涉及到对Android系统API的理解以及对权限...

    android应用锁的实现

    1. **权限管理**:在Android系统中,为了实现应用锁,首先需要获取相应的权限。例如,`READ_PHONE_STATE`用于检测设备是否解锁,`SYSTEM_ALERT_WINDOW`(悬浮窗权限)用于在其他应用之上显示锁定提示。 2. **...

    android中调用相机相册

    在Android应用开发中,调用...综上所述,Android中调用相机和相册涉及到Intent的使用、权限管理、结果处理以及图像的获取和处理等多个知识点。通过合理的代码设计和测试,你可以为用户提供流畅的图片拍摄和选择体验。

    Android通讯录姓名手机号获取,打电话发短信功能。

    在Android平台上,获取用户的联系人信息以及实现打电话和发送短信的功能是常见的应用场景,尤其是在开发社交或者通讯类应用时。下面将详细讲解如何在Android Studio中实现这些功能。 首先,我们需要了解Android的...

    Android 源码分析-打电话和发短信

    "Android 源码分析-打电话和发短信" Android 源码分析-打电话和发短信是 Android 开发者中的一项重要内容。本文将对 Android 源码中的打电话和发短信机制进行深入分析,并对相关知识点进行总结。 一、ITelephony ...

    安卓Android源码——android打电话源码.zip

    这个压缩包“安卓Android源码——android打电话源码.zip”(实际为rar文件)很可能是包含了Android系统中实现拨打电话功能的相关源代码。通过分析这些源码,我们可以深入理解Android如何处理电话相关的操作,包括...

    Android应用源码之android打电话源码.zip

    通过分析"Android应用源码之android打电话源码.zip"这个压缩包中的源代码,我们可以深入理解这些核心概念。 首先,Android应用的构建通常基于Activity、Service、BroadcastReceiver等组件。在这个源码中,我们可能...

    Android开发实例:打电话.zip

    在Android平台上进行应用程序开发时,实现打电话功能是常见的需求之一。这个"Android开发实例:打电话.zip"文件包含了一个具体的示例,教你如何在Android应用中集成拨打电话的功能。以下是关于这个话题的详细知识: ...

    Android应用自动更新代码实现

    在Android应用开发中,为了确保用户始终使用最新版本的应用,开发者通常会实现自动更新功能。本文将详细探讨如何在Android应用程序中实现自动检查并下载新版本的代码逻辑,以达到无缝更新的效果。 首先,我们需要一...

    Android实现打电话和发短信

    在Android应用开发中,有时需要集成打电话和发送短信的功能,以提供更...以上就是在Android应用中实现打电话和发送短信的基本步骤。在实际开发中,应考虑权限问题、异常处理以及用户交互,确保功能的完整性和安全性。

    android应用开发范例精解

    第2篇为应用开发篇,通过实例介绍了Android UI布局、Android人机界面、手机硬件设备的使用、Android本地存储系统、Android中的数据库、多线程设计、Android传感器、Android游戏开发基础、Android与Internet,以及...

    安卓Android源码——android打电话源码.rar

    本资源“安卓Android源码——android打电话源码.rar”提供了一种深入理解如何在Android应用程序中实现打电话功能的方式。通过分析这个源码,我们可以学习到如何在Android系统中集成电话拨打功能,并了解相关API和...

    android 实现拨打电话黑屏功能

    在Android平台上实现拨打电话并同时让屏幕保持黑屏或关屏的功能,对于一些特定的应用场景,比如紧急呼叫或者隐私保护,具有一定的实用价值。本文将详细介绍如何实现这一功能,并提供相应的源码分析。 首先,我们...

    android简易的打电话app

    在Android平台上,开发一个简单的打电话应用涉及到多个关键知识点。首先,我们需要理解Android系统的架构和应用程序框架,因为所有的Android应用都是基于这个框架构建的。在这个框架中,开发者使用Java或Kotlin等...

    Android 打电话检测和抽烟检测

    在Android平台上实现打电话检测和抽烟检测是一项结合了图像识别与行为分析的技术,它涉及到了多个IT领域的专业知识。本文将深入探讨这些技术要点。 首先,我们要理解图像检测的基础——图像算法。图像算法是计算机...

    四,android四大组件基础介绍及打电话,发短信简单应用 &单元测试

    为了实现“打电话”和“发短信”的功能,开发者需要使用到Android的权限管理,例如`<uses-permission>`标签在AndroidManifest.xml中声明打电话和发送短信所需的权限。此外,还需要使用到Android提供的Intent机制来...

    Android中调用相机拍照之后裁剪得到的照片的源码

    本文将深入解析Android中调用相机拍照并裁剪照片的源码实现。 首先,我们需要在AndroidManifest.xml中声明相机权限: ```xml <uses-permission android:name="android.permission.CAMERA" /> <uses-feature ...

    Android应用源码之android打电话源码.zip项目安卓应用源码下载

    Android应用源码之android打电话源码.zip项目安卓应用源码下载Android应用源码之android打电话源码.zip项目安卓应用源码下载 1.适合学生毕业设计研究参考 2.适合个人学习研究参考 3.适合公司开发项目技术参考

    Android打电话源码

    在Android系统中,实现打电话功能涉及到了多个层次的源代码,包括系统级别的API以及应用程序接口。下面我们将深入探讨Android打电话源码的相关知识点。 1. **Intent与ACTION_CALL** 在Android应用开发中,拨打电话...

Global site tag (gtag.js) - Google Analytics