2012-08-03 58 views
0

我想知道如何使用Android中的TelephonyManager在电话结束时更改活动。任何人有教程或可以提供代码?在结束通话时更改活动

+0

如果您有关于检索管理器,附加监听器或者意图切换活动的信息,请告诉我们。服务和活动都来自上下文,所以都有startActivity()方法。 – 2012-08-03 22:02:08

+0

您想先测试您是否收到意图,并且可以正确识别状态更改。然后通过startActivity()方法切换到下一个活动。如果需要,您也可以将参数放在意图中,并将呼叫信息传递给下一个活动。 – 2012-08-03 22:03:40

回答

0

要更改要在TelephonyManager上注册为侦听器的活动,或者侦听该更改的广播。在那一刻,你将通过执行context.startActivity(inent)来改变活动,其中意图针对的是下一个活动。

步骤一:

注册一个PhoneStateListener与TelephonyManager赶上当状态更改为diconnected。

PhoneStateListener myPhoneStateListener = new PhoneStateListener() { 
    @Override 
    void onCallStateChanged(int state, String incomingNumber){ 
     // Check state here. 
     if (changed to disconnected){ // Check status change here. Might need to save previous? 
      Intent i = new Intent(NextActivity.class); 
      startActivity(i); 
     } 
     } 
} 

telephonyManager.listen(myPhoneStateListener); 

先编码,然后测试。

第二步:

创建在转到下一个活动的意图。

Intent intent = new Intent(NextActivity.class) 
    startActivity(intent); 
+0

好的,在它说改为断开连接的那一行,我必须把CALL_STATE_OFFHOOK,对吗? – user1561917 2012-08-04 01:08:07

+0

此外,在第二步括号中的意图,它给了我一个错误,说:令牌“意图”上的语法错误,此令牌后期望VariableDeclaratorId。 – user1561917 2012-08-04 01:13:17