2012-05-19 46 views
0

我想在收到呼叫并处于振铃模式时弹出一个新的视图。但我无法做到这一点。 我张贴我的代码,但也考虑代码的评论。Android电话管理器和PhoneStateListener

package com.android.CallIntent; 

import android.content.Context; 
import android.content.Intent; 
import android.telephony.PhoneStateListener; 
import android.telephony.TelephonyManager; 
import android.util.Log; 

public class Listener extends PhoneStateListener { 
    Context Context; 
    public Listener(Context context) 
    { 
     this.Context = context; 
    } 

    @Override 
    public void onCallStateChanged(int state, String incomingNumber) { 
     // TODO Auto-generated method stub 
     super.onCallStateChanged(state, incomingNumber); 

     switch(state) 
     { 
      case TelephonyManager.CALL_STATE_OFFHOOK: 

       break; 
      case TelephonyManager.CALL_STATE_RINGING: 

       Log.d("message","Ringing"); 
       Intent intent = new Intent(Context, CallOptions.class); 
       // I want to start my new Activity From here please Help me. 

       //I am unable to access StartActivity 
       break; 

     } 
    } 

} 

// My BroadcastReceiver class is here 
public class Receiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     // TODO Auto-generated method stub 
     TelephonyManager manager = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE); 
     Listener phoneStateListener= new Listener(); 
     manager.listen(phoneStateListener, Listener.LISTEN_CALL_STATE); 


    } 

请有人帮助我请请。

在此先感谢。

+0

你试过用'context.StartActivity()'开始活动? –

回答

0

看这里....它必须帮助你...

case TelephonyManager.CALL_STATE_RINGING: 
      Toast.makeText(context, "incoming call", Toast.LENGTH_LONG).show(); 
      IntentService = new Intent(context, PlayService.class).setAction("incoming_call"); 
      IntentService.putExtra("phone_number",intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER)); 
      if (SmsReceiver.bool) 
      context.startService(IntentService); 
      break;