`

Android5.0以上系统自动接电话的实现

 
阅读更多

最近在做自动接听电话的功能,在网上查了很多,4.4.2的系统都能接起来,但是我用的NOTE4,5.1.1系统却怎么也接不起来,今天查到了要连续发两个有序广播来实现,但我还是接不起来,后来突然想起来,有可能是两个广播发的时间太近了造成的,稍微修改一下就可以了,顺便还可以实现挂断功能

 

	/**
	 * 自动接听电话
	 */
	private static void autoAnswercall(final Context context) {
		final String enforcedPerm = "android.permission.CALL_PRIVILEGED";
		Intent btnDown = new Intent(Intent.ACTION_MEDIA_BUTTON).putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_DOWN,
				KeyEvent.KEYCODE_HEADSETHOOK));
		final Intent btnUp = new Intent(Intent.ACTION_MEDIA_BUTTON).putExtra(Intent.EXTRA_KEY_EVENT, new KeyEvent(KeyEvent.ACTION_UP,
				KeyEvent.KEYCODE_HEADSETHOOK));

		context.sendOrderedBroadcast(btnDown, enforcedPerm);
		new Handler().postDelayed(new Runnable() {
			@Override
			public void run() {
				context.sendOrderedBroadcast(btnUp, enforcedPerm);
			}
		}, 500);
		try {
			Runtime.getRuntime().exec("input keyevent " + Integer.toString(KeyEvent.KEYCODE_HEADSETHOOK));
		} catch (IOException e) {
			e.printStackTrace();
			// Runtime.exec(String) had an I/O problem, try to fall back
		}
	}

  其中的500如果改成1000的话就变成了挂断功能,相当于长按耳机接听键

分享到:
评论

相关推荐

    Android5.0来电界面InCallUI源码

    在Android系统中,InCallUI是处理电话呼叫界面的核心组件,尤其在Android 5.0版本中,它扮演着至关重要的角色。InCallUI不仅负责显示来电、去电和通话中的用户界面,还包含了通话控制的功能,如接听、挂断、静音、...

    android听筒和扬声器切换,兼容5.0以上

    本文将详细讲解如何实现这一功能,并确保兼容Android 5.0及以上版本。 首先,我们要理解Android的声音输出系统。Android系统提供了一个音频路由框架,它负责管理音频输出设备的选择,包括扬声器和听筒。在Android中...

    Android的自动拨号

    以上就是关于“Android的自动拨号”涉及的主要知识点。通过理解和运用这些技术,开发者可以构建出功能强大且用户友好的自动拨号应用程序。在实际项目中,开发者还需要考虑兼容性、性能优化以及应用的持续维护和更新...

    软件程序、蓝牙协议和配置文件_基于Android的车载蓝牙系统_android_

    在本主题中,我们将深入探讨基于Android的车载蓝牙系统,这是一种集成在汽车内部,通过Android界面实现电话接听功能的技术。这种系统充分利用了Android操作系统的优势,为用户提供了方便、安全的车载通信体验。以下...

    Android系统原理与开发要点详解_培训课件.zip

    以上只是Android系统原理和开发要点的一部分,实际开发中还需要掌握更多进阶知识,如JNI(Java Native Interface)用于调用C/C++代码,Android NDK用于原生开发,以及近年来热门的Kotlin特性和Android Jetpack组件库...

    auto_answer

    在Android系统中,实现自动接听电话的功能涉及到一系列的API调用和技术实现。这一功能通常用于自动化测试、特殊应用场景或者辅助工具中,对于开发者来说是一项挑战,因为它涉及到对系统权限的控制以及电话服务的深入...

    Android应用开发揭秘

    - **定义**:应用程序是Android系统中的最高层组件,它由一系列相关的Activity、Service、BroadcastReceiver等构成,这些组件协同工作以实现特定的功能。 - **组成**: - **Activity**:用户界面的一个屏幕或一个...

    linphone 最新sdk android

    Linphone SDK是由Belledonne Communications开发的,它是一个跨平台的解决方案,支持iOS、Android、Windows、macOS等多种操作系统。该SDK提供了丰富的API,允许开发者轻松地集成SIP功能到自己的应用程序中,包括语音...

    Android程序设计基础

     作为基于Linux的开源手机平台,Android包括一部手机工作所需的全部软件——操作系统、用户界面和应用程序,而且不存在任何以往阻碍移动产业创新的专有权障碍。谷歌公司与开放手机联盟合作开发了Android,这个联盟...

    android.widget合集(上)(20篇)

    20. **Toolbar**:自Android 5.0起取代ActionBar,提供更多自定义选项,可以嵌入在任何布局中,实现可定制的导航栏。 了解并熟练运用这些`android.widget`包中的控件,能让你的Android应用拥有更加丰富和友好的用户...

    《Android移动开发—习题2.0.doc

    5、Android提供了一个setResult()方法来实现回传数据。 六、判断题 1、正确,Activity是Android应用程序的四大组件之一。 2、错误,Intent不仅可以启动Activity,还能开启广播和服务,以及在组件间传递数据。 3、...

    Material_EditText

    在Android 5.0(Lollipop)版本中,谷歌引入了Material Design,使得开发者可以方便地在应用中实现这一设计风格。Material_EditText则是这一设计语言在EditText组件上的实现,它提供了与原生Material Design相符的...

    蓝牙操作示例

    5. 车载娱乐系统:汽车可以通过蓝牙与手机配对,实现音乐播放、电话接听等功能。 五、蓝牙的安全性 蓝牙通信采用AES-128加密算法,确保数据传输的安全性。同时,设备之间的配对过程也增加了安全性,通常需要输入...

    Android Notification使用方法详解

    - 添加颜色化通知:`setColor`,针对Android 5.0及以上版本。 - 使用`Builder`的`setAutoCancel`方法使通知在用户点击后自动取消。 - 使用`Builder`的`setContentIntent`设置点击通知后执行的动作。 ### ...

    Discover the world of Bluetooth technology

    3. **汽车信息系统**:实现车载电话、导航和娱乐系统功能。 4. **智能家居设备**:如智能灯泡、门锁和恒温器,通过蓝牙进行远程控制。 5. **医疗设备**:如血糖仪、血压计,与移动设备连接进行健康监测。 ### 如何...

Global site tag (gtag.js) - Google Analytics