3
A
回答
2
试试这个:
/* location of sms inbox*/
public static final String CONTENT = "content://sms/inbox";
/*location of sms on sim card */
public static final String SIMCONTENT = "content://sms/sim";
/*name of address field*/
public static final String ADDRESS = "address";
/*name of body field*/
public static final String BODY = "body";
/*cursor incoming sms*/
private static Cursor inboxCursor;
/*cursor sms on sim card*/
private static Cursor simCursor;
initCursors(Context context){
inboxCursor = context.getContentResolver()
.query(Uri.parse(CONTENT), null, null, null, null);
simCursor = context.getContentResolver()
.query(Uri.parse(SIMCONTENT), null, null, null, null);
}
/**
* Reading SMS from telephone memory.
* @return a Map object where key - telephone number, value - a List
* consisting of messages.
*/
public Map<String, List<String>> readTelephoneSms() {
Map<String, List<String>> smsData = new HashMap<String, List<String>>();
while (inboxCursor.moveToNext()) {
if(smsData.containsKey(inboxCursor.getString(inboxCursor.getColumnIndex(ADDRESS)))){
smsData.get(inboxCursor.getString(inboxCursor.getColumnIndex(ADDRESS)))
.add(inboxCursor.getString(inboxCursor.getColumnIndexOrThrow(BODY)));
}else{
List<String> data = new ArrayList<String>();
data.add(inboxCursor.getString(inboxCursor.getColumnIndexOrThrow(BODY)));
smsData.put(inboxCursor.getString(inboxCursor.getColumnIndex(ADDRESS)), data);
}
}
return smsData;
}
/**
* Reading SMS from Sim card memory.
* @return a Map object where key - telephone number, value - a List
* consisting of messages.
*/
public Map<String, List<String>> readSimSms() {
Map<String, List<String>> smsData = new HashMap<String, List<String>>();
while (simCursor.moveToNext()) {
if(smsData.containsKey(simCursor.getString(simCursor.getColumnIndex(ADDRESS)))){
smsData.get(simCursor.getString(simCursor.getColumnIndex(ADDRESS)))
.add(simCursor.getString(simCursor.getColumnIndexOrThrow(BODY)));
}else{
List<String> data = new ArrayList<String>();
data.add(simCursor.getString(simCursor.getColumnIndexOrThrow(BODY)));
smsData.put(simCursor.getString(simCursor.getColumnIndex(ADDRESS)), data);
}
}
return smsData;
}
2
它的一些东西长为做到这一点...
我只是你提供这些链接,其完成你想要什么你的需要。只要看看这一点,让我知道它的帮助你或不..
FrontPage/Tutorials/SMS Messaging
也要看这是否太问题How can I read SMS messages from the inbox programmatically in Android?
相关问题
- 1. 如何显示表单中的信息?
- 2. 显示表A中的所有信息,如果一列行帐号匹配
- 3. 如何显示opencart模块中的所有产品信息?
- 4. 显示所有注册用户信息
- 5. TableLayoutPanel Winforms不显示所有信息
- 6. 显示与data.info所有信息()在Python
- 7. 在列表框中显示消息框中的多个信息
- 8. 如何显示Eclipse中的所有列?
- 9. 如何显示没有管理员列表中的所有WordPress用户与用户信息
- 10. 如何显示所有信息从SQL查询
- 11. 如何选择整个数据库并显示所有信息
- 12. 如何显示表中的所有值
- 13. 如何在列表视图中显示表的所有记录?
- 14. 文章列表还显示查看所有文章的数据库信息
- 15. 如何获得我所有时间的所有Facebook状态信息的列表?
- 16. 如何在两张表格中显示表格上的信息?
- 17. 如何在sql中显示多个表中的所有列?
- 18. 显示所需的属性信息
- 19. 如何在使用数组获取所有信息时突出显示表行?
- 20. 一旦显示所需的现场信息,如何禁用成功信息?
- 21. 如何显示复选框列表信息?
- 22. 苹果如何让info.plist显示其“信息属性列表”?
- 23. 如何选择列表项并动态显示详细信息?
- 24. 如何获取有关Oracle中某个表的所有信息?
- 25. 要在Android中的列表中显示的信息
- 26. 显示主进程控制台中的所有信息
- 27. 在laravel的所有视图中显示登录用户信息
- 28. Simplexml没有显示信息
- 29. 信息没有显示
- 30. 如何在Silverlight中显示WCF信息?