簡體   English   中英

Android檢測來電?

[英]Android detect incoming calls?

我正在嘗試開發一個應用程序,如果有人在一段時間內連續多次呼叫你,它會打開你的鈴聲。 這是我的第一個真正的應用程序,所以我有點卡住了。

如果在內部列表中收到呼叫,我將如何記錄? 這需要是一個始終運行的服務,還是只能通過接收撥號器應用程序的意圖在普通的應用程序中工作?

如果這個問題有點含糊,我道歉。

最好的方法是,通過在清單中聲明廣播接收器,這將導致每次觸發事件時,BroadcastReceiver類上的代碼都會被執行,而不需要在后台運行服務,讓操作系統為您處理觀察部分......

<receiver android:name=".ReceiverExample">
  <intent-filter>
    <action android:name="android.intent.action.PHONE_STATE" />
  </intent-filter>
</receiver>

現在,在您的broadcastreceiver類“ReceiverExample”中,創建一個SharedPreference來存儲進入呼叫的數量,並根據這個,您可以驗證是否有時間做其他事情......

  public class ReceiverExample extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
     //Logic to listen incoming calls, and keep track of them using Shared Preferences..
    }
  }

服務適用於長期任務,但其自身的操作系統非常適合監視/觀察事件(如電話事件,例如Incomming調用...),盡量不要通過創建服務來監視已知事件來重新執行操作系統工作。 ..

問候

use single Tone Class for recording 


public class Recording {

    private static MediaRecorder recorder;
    private File audiofile;

    private static Recording mInstance;

    public MediaRecorder getRecorder() {
        System.out.println("From singleton..!!!");
        return recorder;
    }

    public static Recording getInstance(Context context) {
        return mInstance == null ? (mInstance = new Recording(context))
                : mInstance;
    }

    private Recording(Context context) {
        System.out.println("Again initiated object");
        File sampleDir = Environment.getExternalStorageDirectory();
        try {
            audiofile = File.createTempFile("" + new Date().getTime(), ".amr",
                    sampleDir);
        } catch (IOException e) {
            e.printStackTrace();
            return;
        }

        recorder = new MediaRecorder();
        recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        recorder.setOutputFormat(MediaRecorder.OutputFormat.AMR_NB);
        recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
        recorder.setOutputFile(audiofile.getAbsolutePath());
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM