2016-08-03 11 views
2

これは私が着信を検出するために使用しているコードで、着信番号を同時にトーストしています。私は自分のアプリケーションを自動的に起動したいので、これを手伝ってください。事前に感謝します。 私はこの質問の解決策を以前にも言及してきました。質問者が着信を検出できなかったため、着信コールを検出する方法が示されていましたが、既にコードに示されているように、電話が鳴るたびに自動的にアプリケーションを起動するコードがありますが、そこに解決策が見つかりませんでした。シンプルstartActivityと所得の呼び出しで着信時に自動的にAndroidアプリケーションを起動するには?

public class CallHelper extends Activity { 

String incomingNo; 

private class CallStateListener extends PhoneStateListener { 
    @Override 
    public void onCallStateChanged(int state, String incomingNumber) { 
     switch (state) { 
     case TelephonyManager.CALL_STATE_RINGING: 
      // called when someone is ringing to this phone 

      incomingNo = incomingNumber; 
      Toast.makeText(ctx, 
        "Incoming no: "+incomingNo, 
        Toast.LENGTH_SHORT).show(); 


      break; 
     } 

    } 
} 


public class OutgoingReceiver extends BroadcastReceiver { 
    public OutgoingReceiver() { 
    } 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER); 
     Toast.makeText(ctx, 
       "Outgoing: "+number, 
       Toast.LENGTH_LONG).show(); 
    } 

} 

private Context ctx; 
private TelephonyManager tm; 
private CallStateListener callStateListener; 

private OutgoingReceiver outgoingReceiver; 

public CallHelper(Context ctx) { 
    this.ctx = ctx; 
    callStateListener = new CallStateListener(); 
    outgoingReceiver = new OutgoingReceiver(); 

} 
public String returnData(){ 
    String incoming = incomingNo; 
    start(); 
    callStateListener = new CallStateListener(); 
    Log.i("check","this is return data returning :"+incoming); 
    return incoming; 
} 

public void start() { 
    tm = (TelephonyManager) ctx.getSystemService(Context.TELEPHONY_SERVICE); 
    tm.listen(callStateListener, PhoneStateListener.LISTEN_CALL_STATE); 

    IntentFilter intentFilter = new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL); 
    ctx.registerReceiver(outgoingReceiver, intentFilter); 
} 

public void stop() { 
    tm.listen(callStateListener, PhoneStateListener.LISTEN_NONE); 
    ctx.unregisterReceiver(outgoingReceiver); 
} 

} 
+0

で動作することができません、それは私が言及している重複ではありませんその前にその答えがあり、その質問者は入ってくる犯人を検出できなかった私はすでに電話を鳴らしているときに自動的にアプリケーションを起動するコードを望んでいますが、そこに解決策が見つかりませんでした。 –

+0

@TarunTalrejaマニフェストにブロードキャストレシーバーを登録しようとしましたか?これにより、アプリケーションが実行されていない場合でも、受信者のコードがトリガーされます。 – Kariem

+0

'onReceive'。あなたは 'コンテキスト'を持っています、はい? 'startActivity'メソッドを使ってアクティビティを開始する方法を知っていますか? –

答えて

関連する問題