繁体   English   中英

在安装应用程序之前,在Android手机中查找datamessage

[英]find datamessage in android phone from before app was installed

说我有一个应用程序,使用此方法发送datamessage

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

说发送它的人有应用程序,接收它的人没有应用程序,如果没有应用程序的人安装应用程序有一种方法在系统中查找该数据消息以确认最初发送它的人的发音量

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

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

很可能没有。 因为如果设备接收到数据短信,则所有应用都会收到广播 ,如果它们已经注册了。 在此之后,数据可供应用程序使用。 如果您非常非常幸运,其中一个应用程序可以将数据保存到公共可访问区域,您可以从那里抓取它,但我建议您不要依赖它。

只要接收器一直保持短信在他们的收件箱,你可以使用下面的代码, 从这个线程

// 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 ,以防您还没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM