我使用Intent.ACTION_SCREEN_OFF和Intent.ACTION_SCREEN_ON创建自己的LockScreen。当我打电话时我想停止我的应用程序,但我找不到这样做的方法。最后一个选择是在通话期间阻止屏幕关闭。我怎样才能做到这一点?请帮忙!
答案 0 :(得分:1)
不确定您的实施细节,但是您需要查看TelephonyManager
,如果您只需要在某个时间点检查状态,则可以使用{{3} } 方法。否则,您可以使用getCallState
方法注册listen
以跟踪状态更改,并让您的应用根据需要做出响应。
答案 1 :(得分:0)
我发现了这段代码,它起作用了:
TelephonyManager tm = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
tm.listen(mPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
private PhoneStateListener mPhoneListener = new PhoneStateListener() {
public void onCallStateChanged(int state, String incomingNumber) {
switch (state) {
case TelephonyManager.CALL_STATE_RINGING:
finish();
break;
case TelephonyManager.CALL_STATE_OFFHOOK:
finish();
break;
case TelephonyManager.CALL_STATE_IDLE:
break;
}
}
};
in Manifest:
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>