android 蓝牙电话号码,Android拨打电话和蓝牙状态监听
一、拨打电话
权限管理
思路
通过Intent设置Action为ACTION_DIAL或者 ACTION_CALL,通过intent启动直接拨打电话或者打开拨打电话界面。
示例代码
直接拨打电话
/**
* 拨打电话(直接拨打电话)
* @param phoneNum 电话号码
*/
public void callPhone(String phoneNum){
Intent intent = new Intent(Intent.ACTION_CALL);
Uri data = Uri.parse("tel:" + phoneNum);
intent.setData(data);
startActivity(intent);
}
跳转到拨打电话界面
/**
* 拨打电话(跳转到拨号界面,用户手动点击拨打)
*
* @param phoneNum 电话号码
*/
public void callPhone(String phoneNum) {
Intent intent = new Intent(Intent.ACTION_DIAL);
Uri data = Uri.parse("tel:" + phoneNum);
intent.setData(data);
startActivity(intent);
}
二、蓝牙状态监听
概述
在项目需求中碰到了需要Android设备和蓝牙进行数据交互和操作,需要实时监听蓝牙状态的变化,包括有蓝牙的打开、关闭、连接、断开连接。
考虑到是采用监听的方式,可以设置一个系统全局广播进行监听。
本地广播无法实现蓝牙状态监听
下面是对Android设备中对蓝牙进行状态监听的步骤及代码:
权限
配置文件中添加蓝牙权限:
设置广播类
示例代码如下:
class BluetoothMonitorReceiver : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
var action: String? = intent?.action ?: return
when(action){
BluetoothAdapter.ACTION_STATE_CHANGED ->{
var blueState = intent.getIntExtra(BluetoothAdapter.EXTRA_STATE,0)
when(blueState){
BluetoothAdapter.STATE_TURNING_ON ->{
Log.d("TAG","蓝牙设备正在打开")
}
BluetoothAdapter.STATE_ON ->{
Log.d("TAG","蓝牙设备已打开")
}
BluetoothAdapter.STATE_TURNING_OFF ->{
Log.d("TAG","蓝牙设备正在关闭")
}
BluetoothAdapter.STATE_OFF ->{
Log.d("TAG","蓝牙设备已关闭")
}
}
}
BluetoothDevice.ACTION_ACL_CONNECTED -> {
Log.d("TAG","蓝牙设备已连接")
}
BluetoothDevice.ACTION_ACL_DISCONNECTED -> {
Log.d("TAG", "蓝牙设备已断开")
}
}
}
}
Activity中注册代码
class MainActivity : AppCompatActivity() {
private var bluetoothMonitorReceiver:BluetoothMonitorReceiver? =null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
registerBluetoothReceiver()
}
/**
* 注册蓝牙广播
*/
private fun registerBluetoothReceiver() {
if(bluetoothMonitorReceiver == null) {
bluetoothMonitorReceiver = BluetoothMonitorReceiver()
}
var intentFilter = IntentFilter()
//监听打开蓝牙状态
intentFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED)
//监听蓝牙连接状态
intentFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED)
intentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED)
registerReceiver(bluetoothMonitorReceiver, intentFilter)
}
override fun onDestroy() {
unregisterReceiver(bluetoothMonitorReceiver)
super.onDestroy()
}
打开和关闭蓝牙
打开蓝牙
/**
* 打开蓝牙
*/
private fun openBluetooth(){
//申请打开蓝牙弹窗
// var intent = Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE)
// startActivity(intent)
// 隐式打开蓝牙
var bluetoothAdapter = BluetoothAdapter.getDefaultAdapter();
bluetoothAdapter.enable()
}
关闭蓝牙
/**
* 关闭蓝牙
*/
private fun closeBluetooth(){
//打开设置中有关蓝牙的页面,不建议使用
// var intent = Intent(Settings.ACTION_BLUETOOTH_SETTINGS)
// startActivity(intent)
// 隐式关闭蓝牙
var bluetoothAdapter = BluetoothAdapter.getDefaultAdapter()
bluetoothAdapter.disable()
}
android 蓝牙电话号码,Android拨打电话和蓝牙状态监听相关推荐
- android u盘挂载监听,Android SD卡及U盘插拔状态监听及内容读取
本篇是通过系统方法来对sd卡及U盘插拔监听及数据获取,Android盒子端开发,有系统权限,当然,这个比较简单,知道具体方法,可以通过反射来实现. 先贴上效果图: 获取外置存储设备并监听插拔状态 获取 ...
- Android SD卡及U盘插拔状态监听和内容读取
本篇是通过系统方法来对sd卡及U盘插拔监听及数据获取,Android盒子端开发,有系统权限,当然,这个比较简单,知道具体方法,可以通过反射来实现. 先贴上效果图: 获取外置存储设备并监听插拔状态 获取 ...
- 【Android】Android开发初学者实现拨打电话的功能,拨打电话app小demo实现
作者:程序员小冰,GitHub主页:https://github.com/QQ986945193 新浪微博:http://weibo.com/mcxiaobing 首先先给大家看一下最终实现的效果: ...
- 如何在Android中使用Intent拨打电话?
本文翻译自:How to make a phone call using intent in Android? I'm using the following code to make a call ...
- android实现打电话功能,Android之简单实现拨打电话功能的方法
手机在我们的日常生活中是最常见的,它的功能是拨打电话和发送短信,那么在Android开发中,我们如何通过该程序拨打电话呢?爱站技术频道给出了Android之简单实现拨打电话功能的方法,一起来看看吧! ...
- 虾扯蓝牙(一)获取蓝牙当前状态,监听蓝牙手动开关,代码开关蓝牙
前言 半年没有更新博客了,首要原因就是我太懒了,其次是换了新工作,新环境,一直都处于适应与学习阶段,因为涉及到的领域以前都是没接触的–有幸外派到海尔做智能家居,第一次到这种大的公司来敲代码,很多东西都 ...
- android 通话状态监听(自定义接听挂断按钮与通话界面,根据公司的业务逻辑可以实现自己的来电秀功能)...
前言: 因为公司需求,要自定义一款来电秀的app当做周边产品来配合主营的app业务. 之前因为赶项目,没时间整理这块,现在项目告一段落了,现在回头看看感觉这个功能还是挺有意思的,比较有针对性.电话呼入 ...
- android获取wifi开关,Android WiFi开发(一)--WiFi开关与状态监听
之前开发了一个WiFi,热点相关的应用.因为对这方面也不熟悉,刚开始找资料看书,但看明白实现时,发现随着android版本更新,相关api有较大改动,之前的代码不能用.经过一番探索,最后实现出来了,现 ...
- android全局监听onkeydown,Android中的几个onTouch()事件、onKeyDown监听返回键无效
Android中的几个onTouch()事件.onKeyDown监听返回键无效 一:Android中的几个onTouch()事件 继承SimpleOnGestureListener,HahaGestu ...
最新文章
- object detection
- ubunto用户切换
- 关于Jsp页面的jstl标签的级联属性的异常。
- linux网络编程之通信协议格式
- 汽车上的一些名词缩写解释
- 11.4.3 NOW()函数
- SQL 汉字笔画排序 音序排序
- LeetCode1619删除某些元素后的数组均值(java)
- 独立性检验的基本思想和初步应用
- 关于arduino的各种网站
- 基于FPGA的DS18B20温度测量以及数码管显示
- [tensorflow] 关于 seed
- 微信开放平台 错误码61007: api is unauthorized to component
- js css3挂历撕掉动画特效
- JavaSE学习第一次笔记---Java入门知识
- 行政管理系统-基于php,基于thinkphp,yxcms
- 泰尔解说Google云计算业务:关键在于垄断
- 项目实训(三)unity游戏场景的搭建
- Linux输入绝对值 (Missing $ inserted,Missing delimiter)
- python 年会抽奖小程序
热门文章
- ue4掉落深渊返回地面
- SpringMVC学习-helloSpringMVC
- 此次边路调整系统推荐射手走哪路_此次边路的调整系统会推荐射手走什么路呢...
- tomcat安装不上
- 统计行业板块内涨停板数量,跟踪热点板块!股票量化分析工具QTYX-V2.6.0
- 对话华为鸿蒙掌舵人王成录:真正的第一,是掌握在自己手里的第一
- 吃鸡路线(map最短路径)
- java开发工程师转正述职报告
- 20191129每周精品之编程
- html修改word页边距,Word怎么只修改一页的页边距,而不影响同一文件中的其他页?...