微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决没有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\" />
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。