android - 从 SIM 卡获取短信

标签 android sms

我想保存旧三星 SGH-D500 上的短信。由于它的软件不节省导出消息的时间,我使用以下代码将消息复制到SIM卡并在Android上备份它们:

    Cursor c = getContentResolver().query(Uri.parse("content://sms"), null, null, null, null);
    startManagingCursor(c);
    String text = "";
    for(String name : c.getColumnNames()){
        text += name+"\t";
    }
    text += "\n";
    while(c.moveToNext()){
        for(int i=0; i<c.getColumnCount(); i++){
            text += c.getString(i)+"\t";
        }
        text += "\n";
    }
    Log.d("sms", text);
    File root = Environment.getExternalStorageDirectory();
    if(root.canWrite()){
        File export = new File(root, "sms.txt");
        try {
            BufferedWriter bw = new BufferedWriter(new FileWriter(export));
            bw.write(text);
            bw.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

第一个问题是它只能获取手机上的消息。所以我必须先将每条消息(没有全部复制)复制到手机上。
第二个问题是 Android 甚至无法识别我放在 SIM 卡上的已发送消息(SIM 卡已满但 Android 没有显示任何内容)。

我查看了 Sim Toolkit ,但真的不知道从哪里开始。 难道没有像“content://icc/adn”(联系人)这样的东西只用于 SMS 吗?

谢谢
拉尔夫

最佳答案

很久以前我就玩过sms api。我没有检索所有消息的代码,但我找到了一些将消息添加到已发送消息列表的代码

ContentValues 值 = new ContentValues(); values.put("地址", 数字); values.put("正文", 消息); getContentResolver().insert(Uri.parse("content://sms/sent"),values);

根据内存,我认为 content://sms/inbox 检索收件箱中的所有消息。我无法评论这是否会同时在手机和 sim 卡上收到消息。我使用以下软件从我的电脑通过手机发送消息http://www.fjsoft.at/en/ .它还显示所有文本消息并允许您导出它们。我再次不确定这是手机上的消息还是 sim 或两者上的消息。但它值得一试,是一款不错的软件。

关于android - 从 SIM 卡获取短信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3746531/

相关文章:

android - 主机名不能为空,错误 : Execution failed for task ':app:uploadCrashlyticsMappingFileRelease'

android - Xamarin交叉通知自定义声音

java - 检测从 Intent 发送的短信,无需 SmsManager

android - 短信类型常量

android - 为什么我在 Google Play 控制台中收到 SMS 和 CALL_LOG 警告,而我的应用程序甚至没有使用任何接近这些权限的东西?

java - 从自定义按钮android中删除白色背景

android - GLSurfaceView 的大小和位置

android - 接听电话或电话停止响铃时关闭 Android 上的自定义来电屏幕

flutter - 如何在Android和iOS中使用flutter发送短信

javascript - 您可以使用 WhatsApp API For Business 来验证用户吗?