Tôi không biết nếu bạn có thể phát hiện một cuộc gọi theo thời gian, nhưng sự khác biệt khi cuộc gọi bắt đầu là có thể.
Bạn có thể làm điều đó như thế này, trong CALL_STATE_IDLE:
Uri allCalls = Uri.parse("content://call_log/calls");
String lastMinute = String.valueOf(new Date().getTime() - DAY_IN_MILISECONDS);
//before the call started
Cursor c = app.getContentResolver().query(allCalls, null, Calls.DATE + " > "
+ lastMinute, null, Calls.DATE + " desc");
c.moveToFirst();
if (c.getCount() > 0) {
int duration = Integer.parseInt(c.getString(c.getColumnIndex(Calls.DURATION)));
}
nếu thời gian là> 0 thì sau đó nó gọi được trả lời.
Rõ ràng có các cờ khác mà bạn nên sử dụng để xác định rằng CALL_STATE_IDLE được gọi sau khi thực hiện cuộc gọi.
Hy vọng rằng sẽ giúp và đưa bạn theo cách sửa chữa cho những gì bạn đang cố gắng làm.
cách mã hoạt động ....? –
Điều này sẽ không bao giờ hoạt động. CALL_STATE_OFFHOOK được gọi ngay lập tức khi điện thoại quay số đi. – AndroidDev