boolean isincall = false;
ITelephony telephonyService;
private ITelephony getTelephonyService() {
return ITelephony.Stub.asInterface(
ServiceManager.checkService(Context.TELEPHONY_SERVICE));
}
telephonyService = getTelephonyService();
Slog.d(TAG, "telephonyService="+telephonyService);
if(telephonyService != null)
{
try{
isincall= telephonyService.isOffhook();//摘机
}catch (RemoteException ex) {
Log.w(TAG, "ITelephony threw RemoteException", ex);}
}
Slog.d(TAG, "isincall="+isincall+",mUserActivityTimeoutOverrideFromWindowManager");
if(isincall)
{
Slog.d(TAG,"wakeUpInternal");
mProximityPositive = false;
wakeUpInternal(SystemClock.uptimeMillis());
}else
{
mProximityPositive = false;
mDirty |= DIRTY_PROXIMITY_POSITIVE;
userActivityNoUpdateLocked(SystemClock.uptimeMillis(),
PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, Process.SYSTEM_UID);
updatePowerStateLocked();
}