【问题标题】:find datamessage in android phone from before app was installed在安装应用程序之前在 android 手机中查找数据消息
【发布时间】:2015-09-13 13:31:09
【问题描述】:

假设我有一个使用这种方法发送数据消息的应用

    smsManager.sendDataMessage(String destinationAddress, String scAddress, short destinationPort,
  byte[] data, PendingIntent sentIntent, PendingIntent deliveryIntent);

说发送它的人有应用程序而接收它的人没有应用程序,如果没有应用程序的人安装应用程序,是否有办法在系统中查找该数据消息确认最初发送者的电话号码

【问题讨论】:

  • 你看我的回答了吗?

标签: java android sms smsmanager


【解决方案1】:

...如果没有该应用程序的人安装该应用程序,是否有办法在系统中查找该数据消息...

总之,没有。除了接收之外,系统不处理数据消息。它们只是被 SMS 内容提供者丢弃,因此默认情况下不会保存在任何地方。您的应用必须在收到时安装。

【讨论】:

  • 我认为与其他答案相比,您可能是对的,您能否提供来源或告诉我您是如何知道的,我在上面找不到任何东西
  • 哦,天哪,我很抱歉!我从来没有看到你的评论。呃,我只是通过经验知道这一点。我快速搜索了一些官方的东西,但没有找到任何东西。不过,您可以通过在content://sms/ URI 上设置ContentObserver 并向自己发送数据消息来测试它。您会看到 SMS 提供程序从不为消息分配 ID,而只是将其丢弃。 (我在最初的回答中说错了。)
  • 好的,非常感谢,稍后我会测试它,但我现在要从经验中接受你的话,我不敢相信文档中没有任何内容,再次感谢
【解决方案2】:

很可能没有。因为如果设备接收到数据短信,all the apps will receive a broadcast,如果它们已注册。在此之后,数据可用于应用程序。如果你非常非常非常幸运,其中一个应用程序可以将数据保存到可公开访问的区域,你可以从那里获取它,但我建议你不要依赖它。

【讨论】:

    【解决方案3】:

    只要接收者将短信保存在收件箱中,您就可以使用以下代码from this thread

    // public static final String INBOX = "content://sms/inbox";
    // public static final String SENT = "content://sms/sent";
    // public static final String DRAFT = "content://sms/draft";
    Cursor cursor = getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, null);
    
    if (cursor.moveToFirst()) { // must check the result to prevent exception
        do {
           String msgData = "";
           for(int idx=0;idx<cursor.getColumnCount();idx++)
           {
               msgData += " " + cursor.getColumnName(idx) + ":" + cursor.getString(idx);
           }
           // use msgData
        } while (cursor.moveToNext());
    } else {
       // empty box, no SMS
    }
    

    此代码会将所有消息数据存储为msgData 变量中的字符串。然后,您可以在其中搜索目标发件人的电话号码、您的应用信息等。 要实施此策略,您只需在应用程序的第一次运行时调用上述代码。请注意,您还必须添加权限:android.permission.READ_SMS,以防您尚未添加。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多