2012-01-18 18 views
1

着信/発信コールを検出して録音する予定のアプリを作成しています。 私は放送受信機を登録して、録音を開始することができましたが、停止することはできません。テレフォニマネージャを使用してBRで着信コールと発信コールを録音する

添付のBroadcastRecieverのコードです。BTWはサービスから呼び出されています。

public class IncomingCall extends BroadcastReceiver{ 

@Override 
public void onReceive(Context context, Intent intent) { 

    String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE); 
    if(TelephonyManager.EXTRA_STATE_OFFHOOK.equals(state)){ 
     String incnum = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER); 
     int day = new Date().getDate(), mont = new Date().getMonth() , yea = new Date().getYear(), hou = new Date().getHours(), min = new Date().getMinutes(); 
     String s = ""+day+"_"+mont+"_"+yea+"_"+hou+"_"+min+"_"+incnum+"_Incoming"+".3gp"; 
     final AudioRecorder ar = new AudioRecorder(s, context); 
     ar.start(); 
     Thread th = new Thread(){ 
      public void run(){ 
       String stat = TelephonyManager.ACTION_PHONE_STATE_CHANGED; 
       while(stat == TelephonyManager.EXTRA_STATE_OFFHOOK){ 
        stat = TelephonyManager.ACTION_PHONE_STATE_CHANGED; 
       } 
       ar.stop(); 
      } 
     }; 
     th.start(); 
    } 



} 

教えてください、私はウェブ上で同様の問題についての詳細を見つけるcouldntの:BroadcastReceiverのみ10のための生活を焼成したとき:

答えて

0

\ http://developer.android.com/reference/android/content/BroadcastReceiver.html

話があるを参照BroadcastReceiverを見てみましょうそれがまだonReceive()メソッドから返されなかった場合、OSによって殺された後に、数秒待ってください。 電話を受けてからサービスを開始し、電話の状態が変更されたときに他の受信者からこのサービスを停止します。

関連する問題