如何获取用户在Android中拨打的电话号码和通话时间?

时间:2012-01-27 07:24:58

标签: android broadcastreceiver

我需要在他从Android手机拨打电话后立即获取电话号码,然后当通话结束时我需要通话时间。

1 个答案:

答案 0 :(得分:2)

创建一个广播接收器并在接收器onReceive()方法中写入以下内容 这个接收器返回你的呼叫的最后一个记录,但是做一些时间延迟,以便它可以返回当前记录。

Cursor c=context.getContentResolver().query(android.provider.CallLog.Calls.CONTENT_URI,null, null, null,android.provider.CallLog.Calls.DATE + " DESC");
     int numberColumn = c.getColumnIndex(android.provider.CallLog.Calls.NUMBER);
    int dateColumn = c.getColumnIndex(
    android.provider.CallLog.Calls.DATE);

    // type can be: Incoming, Outgoing or Missed
    int typeColumn = c.getColumnIndex(android.provider.CallLog.Calls.TYPE);
    int DurationColumn = c.getColumnIndex(android.provider.CallLog.Calls.DURATION);

写下您的mainfest file

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

在onRecieve上放这个

Bundle bundle = intent.getExtras();
            Set<String> keys = bundle.keySet();
            for (String key : keys) {
                Log.i("MYAPP##", key + "="+ bundle.getString(key));
                if(bundle.getString(key).equals("IDLE"))
                {
}

}