http://developer.android.com/reference/android/provider/CallLog.Calls.html
Hãy nhìn vào lớp CallLog
này. Tất cả những gì bạn cần là truy vấn điện thoại cho bất kỳ cuộc gọi nào sau đó trích xuất một cuộc gọi nhỡ (оr thực hiện điều này khi bạn đang truy vấn điện thoại, trong các đối số lựa chọn). Điều tương tự cũng áp dụng cho các tin nhắn. SMS được lưu trữ trong nhà cung cấp Nội dung theo số "content://sms/"
Sau đó, chỉ nhận số lượng hàng trong Con trỏ trả về truy vấn. :)
Tôi hy vọng điều này sẽ hữu ích.
Edit: Đối với các cuộc gọi nhỡ:
String[] projection = { CallLog.Calls.CACHED_NAME, CallLog.Calls.CACHED_NUMBER_LABEL, CallLog.Calls.TYPE };
String where = CallLog.Calls.TYPE+"="+CallLog.Calls.MISSED_TYPE;
Cursor c = this.getContentResolver().query(CallLog.Calls.CONTENT_URI, selection,where, null, null);
c.moveToFirst();
Log.d("CALL", ""+c.getCount()); //do some other operation
if(c.getCount() == SOME_VALUE_TO_START_APP_ONE)//...etc etc
Trong mệnh đề mà bạn thiết lập điều kiện để lựa chọn dữ liệu. Trong trường hợp của chúng ta, chúng ta cần mọi thứ có giá trị bằng CallLog.Calls.MISSED_TYPE
. Chúng tôi chọn dự án Tên của người gọi và số của mình, ofcourse bạn có thể chỉ định thêm thông tin để được truy vấn như loại số như điện thoại di động, nhà, nơi làm việc. Khái niệm tương đương với truy vấn SQL, một cái gì đó như: SELECT CACHED_NAME, CACHED_NUMBER_LABEL, TYPE FROM CONTENT_URI WHERE TYPE=MISSED_TYPE
Điều này đòi hỏi quyền truy cập để được thêm vào Manifest
<uses-permission android:name="android.permission.READ_LOGS"></uses-permission>
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
Đối với truy vấn SMS ContentProvider
:
Uri sms_content = Uri.parse("content://sms");
Cursor c = this.getContentResolver().query(sms_content, null,null, null, null);
c.moveToFirst();
Log.d("SMS COUNT", ""+c.getCount()); //do some other operation
//Here proceed with the what you wanted
if(c.getCount() == SOME_VALUE_TO_START_APP_ONE)//...etc etc
Bạn có thể đi sâu hơn trong cây nội dung như chỉ định loại sms, như: content://sms/sent
hoặc content://sms/inbox
và thêm phép chiếu và lựa chọn cho đối số thứ hai của query()
phương thức như, tên, người, trạng thái của tin nhắn (như ví dụ Cuộc gọi).
Điều này đòi hỏi sự cho phép:
<uses-permission android:name="android.permission.READ_SMS"></uses-permission>
Cảm ơn bạn đã trả lời. Bạn có thể chỉ cho tôi một số hướng dẫn. Tôi khó có thể hiểu được tài liệu vì tôi là một NooB thực sự: ( –
@MayuMayooresan Tôi đã cung cấp cho bạn ví dụ tôi đã viết cho bạn. Tôi hy vọng lời giải thích ngắn gọn của tôi là đủ rõ ràng. Chúc may mắn. –
cảm ơn rất nhiều :) u rock :) –