Android 如何在列表中显示所有收件箱消息?
我是android新手 我正在开发一个与发送和接收短信相关的应用程序 我想在列表中显示所有接收短信 如果有人知道,请帮助我 提前感谢。试试这个:Android 如何在列表中显示所有收件箱消息?,android,Android,我是android新手 我正在开发一个与发送和接收短信相关的应用程序 我想在列表中显示所有接收短信 如果有人知道,请帮助我 提前感谢。试试这个: /* 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/s
/* 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;
}
/*短信收件箱的位置*/
公共静态最终字符串内容=”content://sms/inbox";
/*手机短信在sim卡上的位置*/
公共静态最终字符串SIMCONTENT=”content://sms/sim";
/*地址字段的名称*/
公共静态最终字符串ADDRESS=“ADDRESS”;
/*body字段的名称*/
公共静态最终字符串BODY=“BODY”;
/*光标输入短信*/
私有静态游标inboxCursor;
/*sim卡上的光标短信*/
私有静态游标;
初始化游标(上下文){
inboxCursor=context.getContentResolver()
.query(Uri.parse(CONTENT),null,null,null,null);
simCursor=context.getContentResolver()
.query(Uri.parse(SIMCONTENT),null,null,null,null);
}
/**
*从电话存储器中读取短信。
*@返回一个地图对象,其中键-电话号码,值-列表
*由消息组成。
*/
公共地图readTelephoneSms(){
Map smsData=newhashmap();
而(inboxCursor.moveToNext()){
if(smsData.containsKey(inboxCursor.getString(inboxCursor.getColumnIndex(地址))){
获取(inboxCursor.getString(inboxCursor.getColumnIndex(地址)))
.add(inboxCursor.getString(inboxCursor.getColumnIndexOrThrow(BODY));
}否则{
列表数据=新的ArrayList();
add(inboxCursor.getString(inboxCursor.getColumnIndexOrThrow(BODY));
smsData.put(inboxCursor.getString(inboxCursor.getColumnIndex(地址)),数据);
}
}
返回smsData;
}
/**
*从Sim卡存储器中读取短信。
*@返回一个地图对象,其中键-电话号码,值-列表
*由消息组成。
*/
公共地图readSimSms(){
Map smsData=newhashmap();
而(simCursor.moveToNext()){
if(smsData.containsKey(simCursor.getString(simCursor.getColumnIndex(地址))){
smsData.get(simCursor.getString(simCursor.getColumnIndex(地址)))
.add(simCursor.getString(simCursor.getColumnIndexOrThrow(BODY));
}否则{
列表数据=新的ArrayList();
add(simCursor.getString(simCursor.getColumnIndexOrThrow(BODY));
smsData.put(simCursor.getString(simCursor.getColumnIndex(ADDRESS)),数据);
}
}
返回smsData;
}
要做到这一点需要花很长时间
我只是提供给你这些链接,它满足你的需要你想要什么。看看这个,让我知道它是否对你有帮助
再看看这个问题