`
fokman
  • 浏览: 242016 次
  • 性别: 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平台上实现打电话检测和抽烟检测是一项结合了图像识别与行为分析的技术,它涉及到了多个IT领域的专业知识。本文将深入探讨这些技术要点。 首先,我们要理解图像检测的基础——图像算法。图像算法是计算机...

    安卓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中调用硬件摄像头照相

    本文将详细解析如何在Android应用中实现这一功能,包括使用Surface进行预览。 首先,我们需要理解Android的相机框架。Android提供了一个Camera API,允许开发者访问和控制设备上的摄像头。这个API分为两个版本:...

    android简易的打电话app

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

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

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

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

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

    Android打电话源码

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

    Android高级应用源码-android打电话源码.zip

    以下是对"Android高级应用源码-android打电话源码.zip"这个压缩包中可能包含的技术点的详细解析: 1. **权限管理**:在Android系统中,拨打电话功能属于敏感权限,需要在`AndroidManifest.xml`文件中声明`...

    Android WebView中调用相机拍照、相册、录制视频

    本人之前有类似功能的资源,但是系统定的下载积分太高,导致很多的Android开发者都在说我骗积分,我已将之前的资源给隐藏了,重新上传一份更加优质的资源,功能更加强大,如果觉得还OK的话,记得给个好评哦。

    unity中调用安卓摄像机

    标题"unity中调用安卓摄像机"所涉及的知识点主要是如何在Unity中通过C#脚本与Android原生代码交互,以便调用Android系统的相机服务。这通常需要用到Unity的插件开发技术,以及对Android的Java API和JNI(Java Native...

Global site tag (gtag.js) - Google Analytics