- 浏览: 105475 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
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 1054最近在做自动接听电话的功能,在网上查了很多,4.4.2的系统 ... -
Android图片下载缓存库picasso解析
2014-09-30 11:04 1785picasso是Square公司开源的一个Android图形 ... -
Android setting各子页面地址
2014-03-24 10:25 798Android软件时,常常需要打开系统设置或信息界面,来设置相 ... -
如何得到优酷网mp4格式视频文件url
2013-09-05 22:30 3226前言 众所周知,视频在网页中使用FLV格式是最常用和方便 ... -
AndroidSAX解析错误,内容获取不完整
2013-08-29 22:35 873转载:http://blog.csdn.net/feng88 ... -
用ViewGroup实现多View自动换行的功能
2013-08-24 22:58 899public class PredicateLayout ... -
Android使用File创建临时文件,File.createTempFile
2013-08-17 11:49 4065废话不多说,直接上代码 File files = ... -
android应用创建快捷方式
2013-08-15 08:29 751android应用创建快捷方式,包名写自己的 Int ... -
MatrixCursor和MergeCursor
2013-07-15 13:53 10051、MatrixCursor创建记录 ContentPr ... -
android屏蔽home键
2013-07-05 08:44 744@Override public boolean onK ... -
Android Service被关闭后自动重启,解决被异常kill 服务
2013-06-18 22:32 5989每次调用startService(Intent)的时候,都会 ... -
Android网络通信的六种方式示例代码
2013-06-18 10:57 963手机作 ... -
android通过http访问mysql或者sqlserver,oracle数据库
2013-05-14 16:50 996表单提交中get和post方式的区别有5点1.get是从服 ... -
Android中SQLite应用详解
2013-05-14 11:24 813现在的主流移动设备像Android、iPhone等都使用SQ ... -
SQLite的升级
2013-05-14 10:46 676SQLite的升级 做Android应用,不可避免的会 ... -
Android系统启动过程
2013-05-06 16:21 1407一、开机加电 bootloader(汇编语言)进行底 ... -
android4.0虚拟按键
2013-04-07 15:54 824我们公司手机依然还是支持硬件按键,但是android4.0 ... -
Android动态加载jar/dex
2013-03-18 17:31 877Android动态加载jar/dex 前言 在目前 ... -
探秘腾讯Android手机游戏平台之不安装游戏APK直接启动法
2013-03-18 13:51 968前言 相信这样一个问题,大家都不会陌生, “有什么 ... -
getWritableDatabase()和getReadableDatabase()的区别
2013-03-14 11:32 1911getReadableDatabase()并不是以只读方式打开 ...
相关推荐
首先,为了能够访问手机的通话状态,必须在应用程序的清单文件`AndroidManifest.xml`中添加相应的权限。这是通过添加以下代码行实现的: ```xml <uses-permission android:name="android.permission.READ_PHONE_...
Android 判断手机通话的几种状态,比如正在通话状态、等待用户接听状态、手机处于待机状态、电话已接通、有来电并显示电话号码。程序还支持未接电话自动发短信功能,当判断出“我现在不方便接电话,稍后打给你”时,...
在`onCallStateChanged(int state, String incomingNumber)`方法中,可以判断当前是否处于通话状态,以便在通话开始时启动息屏逻辑,在通话结束时恢复屏幕。 6. **权限管理**:为了访问传感器和控制屏幕,还需要在...
7. **事件处理逻辑**:在实现自动切换音量控制时,需要在BroadcastReceiver中判断当前是否处于通话状态,如果是,则将SeekBar关联到通话音量;否则,关联到媒体音量。同时,PhoneStateListener也需要更新SeekBar的...
4. **CallNotifier 层面**:`CallNotifier` 收到消息后会判断是否需要查询来电详情(如号码归属地等)。如果不需要查询,则直接设置声音模式(停止音乐播放并开始播放铃声),并显示来电界面等待用户操作;如果需要...
学习判断手机的网络制式,不仅有助于开发者优化应用在网络条件不佳时的行为,还能帮助他们设计出更智能、用户体验更好的应用。例如,当检测到用户处于2G网络时,应用可以自动降低图片质量以加快加载速度。因此,对...
4. **权限管理**:Android系统权限控制,如READ_PHONE_STATE用于判断设备是否处于通话状态,防止在通话中自动锁定屏幕。 5. **加密算法**:如果使用密码或PIN作为解锁方式,源码可能包含了对用户输入的加密处理,以...
通过分析Radio模块的日志,我们可以找到一些关于通话状态变化的关键信息。例如,拨打电话的过程中,会依次出现以下状态: 1. `GET_CURRENT_CALLS id=1,DIALING`:拨号中。 2. `GET_CURRENT_CALLS id=1,ALERTING`:...
- 此权限一般只会在极特殊的情况下使用,例如当设备处于严重故障状态时,可通过该权限强制停机以避免进一步损坏。 - 安全人员可能会在极端情况下使用它来紧急处理设备安全问题。 #### 14. `BROADCAST_PACKAGE_...
在Android中,Activity可以通过调用`moveTaskToBack(true)`方法将其移到后台,使其处于最小化状态。但是,要使此操作生效,需要在AndroidManifest.xml中设置Activity的启动模式为`singleInstance`。这样,当用户点击...
这对于判断设备是否处于联网状态至关重要。 #### 七、访问SurfaceFlinger **权限名称:** `android.permission.ACCESS_SURFACE_FLINGER` **描述:** SurfaceFlinger是Android平台上底层的图形显示支持。此权限通常...
总结来说,无论是电脑版还是手机版QQ,判断用户在线状态的核心方法是通过发起通话邀请并观察响应。手机版的新功能——语音通话,提供了更直观的方式来辨别在线与不在线。如果语音通话提示无人接听,说明对方不在线;...
"Forwarded Call Alert"的工作原理可能包括监听系统级的通话状态变化,分析通话建立过程中与网络交换机交互的信令信息,来判断电话是否经过了转移。此外,应用可能还会根据不同的运营商和服务提供商进行优化,以适应...
在Android中是如何实现判断区分通话记录中的电话状态,去电,来电、未接来电? 通常可以通过监听BroadcastReceiver中的电话状态变化来实现。 #### 46. DVM的进程和Linux的进程,应用程序的进程是否为同一个概念 -...
通过实现这个接口并重写`onCallStateChanged()`方法,开发者可以获知电话的状态,如通话开始、结束或处于待机状态。 3. **AudioRecord**:这是Android SDK中的类,用于从麦克风捕获音频数据。在通话监听中,我们...
- 示例代码中展示了一个简单的实现方法,通过`ActivityManager`获取当前运行的进程列表,并判断目标应用是否处于前台,然后启动恶意Activity。 #### 2. 优缺点分析 - **优点**:无需修改目标应用,实施相对简单;...
锁屏与系统安全紧密相关,因此涉及到多个权限,如`android.permission.CONTROL_KEYGUARD`用于控制锁屏的显示和隐藏,`android.permission.READ_PHONE_STATE`用于判断设备是否处于通话状态,以避免在通话中意外触发...
|--服务之判断是否处于运行状态 |--服务之定义录音机 |--服务之应用内绑定服务调用方法 |--服务之电话录音 |--服务之看门狗代码示例 |--格式化之DecimalFormat数字格式化 |--桌面快捷方式的添加代码示例 |--桌面控件...
- **监听电话状态**:使用TelephonyManager的listen()方法注册电话状态监听器,当接收到PHONE_STATE变化时,可以判断是否为来电状态。 - **启动Activity并传递参数**:当检测到来电时,通过CommonHelper的...
在IT行业中,"g2g3功能添加"的标题暗示我们正在讨论的是关于G2和G3技术在某个应用程序或系统中的新功能实现。G2和G3通常指的是第二代(2G)和第三代(3G)移动通信技术,它们是手机网络发展的关键阶段。 2G移动通信...