0

個々の通話の通話ログの詳細を表示する方法を知っている人はいますか? 通話履歴に入ると、「1 時間前、3 時間前、昨日、2 日前」などの時間しか表示されません。通話の実際の日時を表示する方法はありますか? また、テキスト メッセージのこの情報を見ると、「送信」時刻が不正確であることに気付きました。午前 12 時 51 分に誰かが私にテキスト メッセージを送信すると、電話には「午後 6 時 31 分に送信、午前 12 時 51 分に受信」と表示されます。これを修正する方法を知っている人はいますか?

Cursor callLogCursor = getContentResolver().query(
                android.provider.CallLog.Calls.CONTENT_URI, null, null, null,
                android.provider.CallLog.Calls.DEFAULT_SORT_ORDER);
        if (callLogCursor != null) {
            while (callLogCursor.moveToNext()) {

                String name = callLogCursor.getString(callLogCursor
                        .getColumnIndex(CallLog.Calls.CACHED_NAME));

                String number = callLogCursor.getString(callLogCursor
                        .getColumnIndex(CallLog.Calls.NUMBER));

                long dateTimeMillis = callLogCursor.getLong(callLogCursor
                        .getColumnIndex(CallLog.Calls.DATE));

                String duration = callLogCursor.getString(callLogCursor
                        .getColumnIndex(CallLog.Calls.DURATION));

                int callType = callLogCursor.getInt(callLogCursor
                        .getColumnIndex(CallLog.Calls.TYPE));

                Date date = new Date(dateTimeMillis);
                String dateString = new SimpleDateFormat("yyyy-MM-dd HH:mm")
                        .format(date);

                if (name == null)
                    name = "Unknown";
                int type = 0;
                switch (callType) {
                case CallLog.Calls.OUTGOING_TYPE:
                    type = R.drawable.out;
                    break;

                case CallLog.Calls.INCOMING_TYPE:
                    type = R.drawable.in;
                    break;

                case CallLog.Calls.MISSED_TYPE:
                    type = R.drawable.miss;
                    break;
                }




    Thanks for your help!
4

1 に答える 1

0

通話履歴から通話日時を取得するためのサンプル コードを次に示します。

    Cursor callDetailCursor = getContentResolver().query(CallLog.Calls.CONTENT_URI, null,null,null,android.provider.CallLog.Calls.DATE + " DESC limit 50");
    int phoneNumber= callDetailCursor.getColumnIndex(CallLog.Calls.NUMBER);
    int callType=callDetailCursor.getColumnIndex(CallLog.Calls.TYPE);
    int callDate=callDetailCursor.getColumnIndex(CallLog.Calls.DATE);
    int callDuration=callDetailCursor.getColumnIndex(CallLog.Calls.DURATION);
    int isReadint=callDetailCursor.getColumnIndex(CallLog.Calls.IS_READ);

    Log.i(">>CAllDetails", "getsCallLogs" );

    if(callDetailCursor.getCount()>0)
    {
        while(callDetailCursor.moveToNext())
        {
String phoneNumberString=callDetailCursor.getString(phoneNumber);
String  contactName= getContactName(CallDetails.this, phoneNumberString);
String callTypeString =callDetailCursor.getString(callType);
String callDateString=callDetailCursor.getString(callDate);
String callDurationString=callDetailCursor.getString(callDuration);
Date callDayTime=new Date(Long.valueOf(callDateString));//converting readable date 

            int callCode = Integer.parseInt(callTypeString);
            int calldur=Integer.parseInt(callDurationString);
            if (callCode==2 && calldur>=1)
            {




String location[]=dbTools.getLocation(phoneNumberString);
String addtolist= "Name :"+contactName+"\n"+
                        "Phone Number: "+phoneNumberString+"\n"+"Call Duration :"+
                        callDurationString+" Seconds\n"+"Call Date: "+callDayTime+"\n"+
                location[0]+" "+location[1];
                callArrayList.add(addtolist);


            }
        }
    }callDetailCursor.close();
  }
于 2013-10-24T22:25:59.650 に答える