没有SMS内容提供商的Android手机?

问题描述

| 我正在编写一个应用,该应用需要阅读用户的短信才能进行基本操作。谷歌表示,SMS内容提供商不受支持,某些手机可能不存在,或者在未来的Android版本中可能无法使用。我想知道是否有人知道没有SMS内容提供程序的任何特定电话?我知道这个问题已经被问到了- 有没有没有短信收件箱内容提供商的电话吗?但没有人提供答案。 或者,如果有人建议使用标准API读取传入和传出消息的方式,那就更好了。     

解决方法

        没有SMS内容提供商,我无法找到电话(至少从Google搜索中无法找到)。我不认为制造商会冒着破坏与众多SMS应用程序(都使用此私有API)的兼容性的风险。 同样,在这一点上似乎还没有标准的方法来访问传入和传出消息。 更新:已使用4.4将其设为公共API-https://developer.android.com/reference/android/provider/Telephony.html     ,        
Uri mSmsinboxQueryUri = Uri.parse(\"content://sms\");
Cursor cursor1 = getContentResolver().query(
        mSmsinboxQueryUri,new String[] { \"_id\",\"thread_id\",\"address\",\"person\",\"date\",\"body\",\"type\" },null,null);
startManagingCursor(cursor1);
String[] columns = new String[] { \"address\",\"type\" };
if (cursor1.getCount() > 0) {
    String count = Integer.toString(cursor1.getCount());
    Log.e(\"Count\",count);
    while (cursor1.moveToNext()) {
        out.write(\"<message>\");
        String address = cursor1.getString(cursor1
                .getColumnIndex(columns[0]));
        String name = cursor1.getString(cursor1
                .getColumnIndex(columns[1]));
        String date = cursor1.getString(cursor1
                .getColumnIndex(columns[2]));
        String msg = cursor1.getString(cursor1
                .getColumnIndex(columns[3]));
        String type = cursor1.getString(cursor1
                .getColumnIndex(columns[4]));
}
}
Uri mSmsinboxQueryUri = Uri.parse(\"content://sms/inbox\");
Uri mSmsinboxQueryUri = Uri.parse(\"content://sms/sent\");
使用此您可以阅读收件箱以及已发送的邮件。 清单文件中的用户权限是
<uses-permission android:name=\"android.permission.READ_SMS\" />
    

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...