- 浏览: 102901 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
bcf102:
~~~~
Android检测耳机当前状态 -
itwangxinli:
reader未关闭
Android检测耳机当前状态 -
bcf102:
smilecatflowers 写道 额,楼主这个貌似是三棱锥 ...
Android OpenGL ES画四棱椎,贴图 -
smilecatflowers:
额,楼主这个貌似是三棱锥的说。。。
Android OpenGL ES画四棱椎,贴图
1. 如何判断手机是否处于正在通话中?(任何时候都可以判断手机是否处于通过中)
private boolean phoneIsInUse() {
boolean phoneInUse = false;
try {
ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
if (phone != null) phoneInUse = !phone.isIdle();
} catch (RemoteException e) {
Log.w(TAG, "phone.isIdle() failed", e);
}
return phoneInUse;
}
2.通话状态的判断(需要注册监听以后,才可以判断手机通话状态的改变,可能连续接收到同一个状态的改变)
package cn.com.chenzheng_java;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.widget.TextView;
/**
*
* @author
* @description 通过该实例,我们可以看到,如果我们想要监听电话的拨打状况,需要这么几步
* 第一:获取电话服务管理器TelephonyManager manager = this.getSystemService(TELEPHONY_SERVICE);
* 第二:通过TelephonyManager注册我们要监听的电话状态改变事件。manager.listen(new MyPhoneStateListener(),
* PhoneStateListener.LISTEN_CALL_STATE);这里的PhoneStateListener.LISTEN_CALL_STATE就是我们想要
* 监听的状态改变事件,初次之外,还有很多其他事件哦。
* 第三步:通过extends PhoneStateListener来定制自己的规则。将其对象传递给第二步作为参数
* 第四步:这一步很重要,那就是给应用添加权限。android.permission.READ_PHONE_STATE
*
*
*/
public class PhoneCallStateActivity extends Activity {
TelephonyManager manager ;
String result = "监听电话状态:/n";
TextView textView ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取电话服务
manager = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
// 手动注册对PhoneStateListener中的listen_call_state状态进行监听
manager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);
textView = (TextView) findViewById(R.id.textView1);
textView.setText(result);
}
/***
* 继承PhoneStateListener类,我们可以重新其内部的各种监听方法
*然后通过手机状态改变时,系统自动触发这些方法来实现我们想要的功能
*/
class MyPhoneStateListener extends PhoneStateListener{
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
result+=" 手机空闲起来了 ";
break;
case TelephonyManager.CALL_STATE_RINGING:
result+=" 手机铃声响了,来电号码:"+incomingNumber;
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
result+=" 电话被挂起了 ";
default:
break;
}
textView.setText(result);
super.onCallStateChanged(state, incomingNumber);
}
}
}
这里一定要注意,别忘记给应用注册权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
private boolean phoneIsInUse() {
boolean phoneInUse = false;
try {
ITelephony phone = ITelephony.Stub.asInterface(ServiceManager.checkService("phone"));
if (phone != null) phoneInUse = !phone.isIdle();
} catch (RemoteException e) {
Log.w(TAG, "phone.isIdle() failed", e);
}
return phoneInUse;
}
2.通话状态的判断(需要注册监听以后,才可以判断手机通话状态的改变,可能连续接收到同一个状态的改变)
package cn.com.chenzheng_java;
import android.app.Activity;
import android.os.Bundle;
import android.telephony.PhoneStateListener;
import android.telephony.TelephonyManager;
import android.widget.TextView;
/**
*
* @author
* @description 通过该实例,我们可以看到,如果我们想要监听电话的拨打状况,需要这么几步
* 第一:获取电话服务管理器TelephonyManager manager = this.getSystemService(TELEPHONY_SERVICE);
* 第二:通过TelephonyManager注册我们要监听的电话状态改变事件。manager.listen(new MyPhoneStateListener(),
* PhoneStateListener.LISTEN_CALL_STATE);这里的PhoneStateListener.LISTEN_CALL_STATE就是我们想要
* 监听的状态改变事件,初次之外,还有很多其他事件哦。
* 第三步:通过extends PhoneStateListener来定制自己的规则。将其对象传递给第二步作为参数
* 第四步:这一步很重要,那就是给应用添加权限。android.permission.READ_PHONE_STATE
*
*
*/
public class PhoneCallStateActivity extends Activity {
TelephonyManager manager ;
String result = "监听电话状态:/n";
TextView textView ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//获取电话服务
manager = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);
// 手动注册对PhoneStateListener中的listen_call_state状态进行监听
manager.listen(new MyPhoneStateListener(), PhoneStateListener.LISTEN_CALL_STATE);
textView = (TextView) findViewById(R.id.textView1);
textView.setText(result);
}
/***
* 继承PhoneStateListener类,我们可以重新其内部的各种监听方法
*然后通过手机状态改变时,系统自动触发这些方法来实现我们想要的功能
*/
class MyPhoneStateListener extends PhoneStateListener{
@Override
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_IDLE:
result+=" 手机空闲起来了 ";
break;
case TelephonyManager.CALL_STATE_RINGING:
result+=" 手机铃声响了,来电号码:"+incomingNumber;
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
result+=" 电话被挂起了 ";
default:
break;
}
textView.setText(result);
super.onCallStateChanged(state, incomingNumber);
}
}
}
这里一定要注意,别忘记给应用注册权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
发表评论
-
Android5.0以上系统自动接电话的实现
2016-04-17 11:10 1027最近在做自动接听电话的功能,在网上查了很多,4.4.2的系统 ... -
Android图片下载缓存库picasso解析
2014-09-30 11:04 1745picasso是Square公司开源的一个Android图形 ... -
Android setting各子页面地址
2014-03-24 10:25 762Android软件时,常常需要打开系统设置或信息界面,来设置相 ... -
如何得到优酷网mp4格式视频文件url
2013-09-05 22:30 3175前言 众所周知,视频在网页中使用FLV格式是最常用和方便 ... -
AndroidSAX解析错误,内容获取不完整
2013-08-29 22:35 842转载:http://blog.csdn.net/feng88 ... -
用ViewGroup实现多View自动换行的功能
2013-08-24 22:58 868public class PredicateLayout ... -
Android使用File创建临时文件,File.createTempFile
2013-08-17 11:49 4009废话不多说,直接上代码 File files = ... -
android应用创建快捷方式
2013-08-15 08:29 720android应用创建快捷方式,包名写自己的 Int ... -
MatrixCursor和MergeCursor
2013-07-15 13:53 9481、MatrixCursor创建记录 ContentPr ... -
android屏蔽home键
2013-07-05 08:44 713@Override public boolean onK ... -
Android Service被关闭后自动重启,解决被异常kill 服务
2013-06-18 22:32 5948每次调用startService(Intent)的时候,都会 ... -
Android网络通信的六种方式示例代码
2013-06-18 10:57 925手机作 ... -
android通过http访问mysql或者sqlserver,oracle数据库
2013-05-14 16:50 968表单提交中get和post方式的区别有5点1.get是从服 ... -
Android中SQLite应用详解
2013-05-14 11:24 779现在的主流移动设备像Android、iPhone等都使用SQ ... -
SQLite的升级
2013-05-14 10:46 649SQLite的升级 做Android应用,不可避免的会 ... -
Android系统启动过程
2013-05-06 16:21 1371一、开机加电 bootloader(汇编语言)进行底 ... -
android4.0虚拟按键
2013-04-07 15:54 800我们公司手机依然还是支持硬件按键,但是android4.0 ... -
Android动态加载jar/dex
2013-03-18 17:31 850Android动态加载jar/dex 前言 在目前 ... -
探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
2013-03-18 13:51 935前言 相信这样一个问题,大家都不会陌生, “有什么 ... -
getWritableDatabase()和getReadableDatabase()的区别
2013-03-14 11:32 1871getReadableDatabase()并不是以只读方式打开 ...
相关推荐
Android 判断手机通话的几种状态,比如正在通话状态、等待用户接听状态、手机处于待机状态、电话已接通、有来电并显示电话号码。程序还支持未接电话自动发短信功能,当判断出“我现在不方便接电话,稍后打给你”时,...
不错的教程,Android获取通话状态 ,有需要的下载吧
主要介绍了Android实现监听电话呼叫状态的方法,涉及Android权限控制及电话状态监听的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
Android 检测判断手机的待机状态,比如手机正在处于待机状态、手机正在响铃、手机正在震动、手机已接听电话、手机正在连接来电等等的一些状态,使用了Case语句来判断各个状态。 case TelephonyManager.CALL_STATE_...
Android手机修改通话记录,可以修改通话记录呦。
用于判断手机所连接的网络属于何种网络,以及手机是否连接了网络
Android 使用swicth case结构判断手机待机、来电等状态,里面的拨号仅为测试,实际中并不能这样拨号哦: switch(state){ case TelephonyManager.CALL_STATE_IDLE://待机状态 Toast.makeText(Sample_11_6.this...
一个判断手机系统的工具类
判断手机是否安装某一应用 上述的packagename是你要检测的应用的包名,怎么查看包名请自行百度哈! 判断好之后,我们可以定义,当有地图应用的时候,就跳转到地图应用,当无地图应用的时候,就跳转到网页: 跳转到...
Android 判断当前网络是否可用简单实例 用户手机当前网络可用:WIFI、2G/3G网络,用户打开与不打开网络,和是否可以用是两码事。可以使用指的是:用户打开网络了并且可以连上互联网进行上网。 首页添加网络权限 ...
android实现通话录音功能
Android Studio 3.2 读取通话记录姓名,手机号,通话时间,通话记录等源码。
Android 手机通话双向录音demo,权限需要自己进行设置,Android 手机通话双向录音demo,权限需要自己进行设置,
Android开发手机通话记录获取方法,通过本文档能让你快速了解Android App开发中获取手机通话记录的基本知识
如何判断Android手机当前是否联网.txt
android 判断网络状态
教你用Android开发WiFi通话教程,不错的资源,推荐
android判断手机SIM卡是哪个运营商
仿QQ微信,Android开发中网络连接状态的判断(判断android设备是否有网络),详细了解请移步http://blog.csdn.net/zxc514257857/article/details/69219113
Android sip实现视频通话