Để tính toán thời gian nói chuyện cho cả hai, cuộc gọi đi đến sử dụng máy thu phát sóng sau:
public class CallDurationReceiver extends BroadcastReceiver {
static boolean flag = false;
static long start_time, end_time;
@Override
public void onReceive(Context arg0, Intent intent) {
String action = intent.getAction();
if (action.equalsIgnoreCase("android.intent.action.PHONE_STATE")) {
if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
TelephonyManager.EXTRA_STATE_RINGING)) {
start_time = System.currentTimeMillis();
}
if (intent.getStringExtra(TelephonyManager.EXTRA_STATE).equals(
TelephonyManager.EXTRA_STATE_IDLE)) {
end_time = System.currentTimeMillis();
//Total time talked =
long total_time = end_time - start_time;
//Store total_time somewhere or pass it to an Activity using intent
}
}
}
Đăng ký nhận của bạn trong file manifest của bạn như thế này:
<receiver android:name=".CallDurationReceiver">
<intent-filter>
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
Ngoài ra thêm sự cho phép sử dụng:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
Nếu họ bắt đầu và kết thúc cuộc gọi trong ứng dụng của bạn, bạn không thể chỉ kiểm tra thời gian hiện tại trước và sau cuộc gọi? –
Đó là những gì tôi đang cố gắng tìm ra. Nền tảng iOS và Android có cho phép tôi phát hiện khi cuộc gọi kết thúc không? – spentak
Bạn có thể nhận nhật ký cuộc gọi trên Android và iOS hoặc nếu bạn chỉ lo lắng về các cuộc gọi được đặt từ ứng dụng khi bạn mô tả, thì bạn có thể kiểm tra thời gian của hệ thống. –