我制作了一个Android应用,我正试图移植到黑莓10设备上。目前,应用程序的所有功能都工作,除了一个,我尝试从手机获取有关最近呼叫的信息。这在android上工作正常,但似乎不适用于我使用的黑莓10模拟器。这是我的部分代码:
final TextView time = (TextView) findViewById(R.id.AddNewEditTextTime);
final TextView date = (TextView) findViewById(R.id.AddNewEditTextDate);
final TextView number = (TextView) findViewById(R.id.AddNewEditTextNumber);
// fields to select.
String[] strFields = { android.provider.CallLog.Calls.NUMBER,
android.provider.CallLog.Calls.TYPE,
android.provider.CallLog.Calls.CACHED_NAME,
android.provider.CallLog.Calls.CACHED_NUMBER_TYPE,
android.provider.CallLog.Calls.DATE};
// only incoming.
String strSelection = android.provider.CallLog.Calls.TYPE + " = "
+ android.provider.CallLog.Calls.INCOMING_TYPE;
// most recent first
String strOrder = android.provider.CallLog.Calls.DATE + " DESC";
// get a cursor.
Cursor mCallCursor = getContentResolver().query(
android.provider.CallLog.Calls.CONTENT_URI, // content provider
// URI
strFields, // project (fields to get)
strSelection, // selection
null, // selection args
strOrder // sortorder.
);
if (mCallCursor.moveToFirst()) {
String a = mCallCursor.getString(mCallCursor
.getColumnIndex("date"));
String b = mCallCursor.getString(mCallCursor
.getColumnIndex("number"));
mCallCursor.close();
SimpleDateFormat dateF = new SimpleDateFormat("dd-MMM-yyyy");
SimpleDateFormat timeF = new SimpleDateFormat("HH:mm");
String dateString = dateF.format(new Date(Long
.parseLong(a)));
String timeString = timeF.format(new Date(Long
.parseLong(a)));
time.setText(timeString);
date.setText(dateString);
number.setText(b);
}
永远不会在blackberry 10设备上输入if(mCallCursor.moveToFirst())
语句,但在Android上运行正常。有什么东西我缺少/做错了,或者没有办法在黑莓10设备上使用这样的android.provider函数?
答案 0 :(得分:1)
目前尚不支持访问通话记录
这不受支持,Android API并未联系到这些数据。
编辑:通常,如果有相同的原生API,则会支持Android中相应的API。 Android API几乎总是使用本机等价物来实现它。 AFAIK没有本地通话记录API。
bbenninger ,support forums。