Nik*_*ski 22
http://developer.android.com/reference/android/provider/CallLog.Calls.html
看看这CallLog
堂课.您只需要在电话中查询任何呼叫,然后提取丢失的呼叫(在查询电话时,在选择参数中执行此操作).这同样适用于消息.SMS存储在内容提供商下"content://sms/"
然后只获取查询返回的Cursor中的行数.:)
我希望这有帮助.
编辑:对于未接来电:
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
Run Code Online (Sandbox Code Playgroud)
在where子句中,您设置了选择数据的条件.在我们的例子中,我们需要所有类型相等的东西CallLog.Calls.MISSED_TYPE
.我们选择项目调用者的姓名和他的号码,当然你可以指定更多的信息来查询,如移动,家庭,工作等数字类型.表达式等同于SQL查询,类似于:SELECT CACHED_NAME, CACHED_NUMBER_LABEL, TYPE FROM CONTENT_URI WHERE TYPE=MISSED_TYPE
这需要将权限添加到Manifest
<uses-permission android:name="android.permission.READ_LOGS"></uses-permission>
<uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
Run Code Online (Sandbox Code Playgroud)
查询短信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
Run Code Online (Sandbox Code Playgroud)
您可以更深入地了解内容树,例如指定短信的类型,例如:content://sms/sent
或者content://sms/inbox
为方法的第二个参数添加投影和选择,query()
例如,名称,人物,消息的状态(如调用示例).
这需要许可:
<uses-permission android:name="android.permission.READ_SMS"></uses-permission>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
19008 次 |
最近记录: |