出于某种原因,Android上的没有短信应用程序似乎提供了标记短信未读的基本功能(甚至是老式哑巴手机)。
我正在考虑自己写这样一个应用程序,但在开始之前,我想知道一些关于如何做到以及为什么以前没有做过的事情。当然这不是不可能吗?
答案 0 :(得分:2)
注意: 首先,只是为了让您知道在Android中使用Android中的消息系统(2.3或更低版本) )对于像SMS这样的事情需要查询内容提供商,而这些内容提供商是官方不可用的,而且Android家伙也已经警告过它。您可以在以下网址中查看: http://android-developers.blogspot.in/2010/05/be-careful-with-content-providers.html
进一步为您的解决方案而且只是为了每个人的关注,我想根据Android操作系统版本划分我的解释:
- 版本2.3或更低版本: 是应用程序在Pankaj Kumar的指导下制作起来非常简单,它适用于上述Android操作系统版本及更低版本。
- 版本4.0&起来:强> 应用程序将 失败而无法正常工作 。是的,正如Android Dev Guys所警告的那样,从这个版本开始,你将无法阅读Messaging内容,因为我已经尝试过,因此你的应用程序无法用于即将推出的Android版本。 你只能得到它们的数量:收件箱,发送,发件箱失败等......但你不能修改或阅读内容。
- 版本> 3.0& < 4.0: 从未测试过并试过。
希望这些信息可以帮助您并节省您走上死路线的时间:)))
答案 1 :(得分:1)
你去吧
SMS数据库具有以下列
06-19 17:41:19.723: V/vipul(25223): _id
06-19 17:41:19.723: V/vipul(25223): thread_id
06-19 17:41:19.723: V/vipul(25223): address
06-19 17:41:19.723: V/vipul(25223): person
06-19 17:41:19.723: V/vipul(25223): date
06-19 17:41:19.723: V/vipul(25223): protocol
06-19 17:41:19.723: V/vipul(25223): read
06-19 17:41:19.723: V/vipul(25223): status
06-19 17:41:19.723: V/vipul(25223): type
06-19 17:41:19.723: V/vipul(25223): reply_path_present
06-19 17:41:19.723: V/vipul(25223): subject
06-19 17:41:19.723: V/vipul(25223): body
06-19 17:41:19.723: V/vipul(25223): service_center
06-19 17:41:19.723: V/vipul(25223): locked
06-19 17:41:19.723: V/vipul(25223): error_code
06-19 17:41:19.723: V/vipul(25223): seen
06-19 17:41:19.723: V/vipul(25223): deletable
06-19 17:41:19.723: V/vipul(25223): hidden
06-19 17:41:19.723: V/vipul(25223): group_id
06-19 17:41:19.723: V/vipul(25223): group_type
06-19 17:41:19.723: V/vipul(25223): delivery_date
06-19 17:41:19.723: V/vipul(25223): date_sent
以下代码段将所有短信标记为未读,您可以将其设置为与ID匹配,并且仅将该短信设为未读
package org.vipul;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
public class SMSSampleActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Uri uri = Uri.parse("content://sms/inbox");
Cursor cursor = managedQuery(uri, null, null, null, null);
for (int i = 0; i < cursor.getColumnCount(); i++) {
Log.i("vipul", cursor.getColumnName(i));
}
if (cursor.moveToFirst()) {
do {
String id = cursor.getString(0);
ContentValues contentValues = new ContentValues();
contentValues.put("read", false);
getContentResolver().update(uri, contentValues, "_id=?",
new String[] { id });
contentValues.clear();
} while (cursor.moveToNext());
}
}
}
最后在清单
中添加android.permission.READ_SMS
ans android.permission.WRITE_SMS
答案 2 :(得分:0)
有一个名为“Mark as Unread”的应用程序,由ChristianAsbjørnSkogsberg出版(检查它)所以我想这是可能的。