【问题标题】:Observe sms sending app in emulator在模拟器中观察短信发送应用
【发布时间】:2012-01-24 17:31:29
【问题描述】:

有没有办法从模拟器读取传出的短信?

在 logcat 中我看到这条消息:

D/SmsStorageMonitor(  738): SMS send size=0 time=1327423357467

有没有办法获取接收者和内容?

发出的短信似乎没有保存在模拟器中。这意味着信使应用程序不会向我显示任何短信。

【问题讨论】:

  • 很好奇除了重写部分 SDK 之外是否还有其他方法可以做到这一点。似乎没有任何方法,至少我能找到,从虚拟路由器后面获取短信。

标签: android android-emulator sms


【解决方案1】:

是的,只需在您的应用中创建一项服务并观察所有传出的短信,只需参考以下代码即可。

public class SMSObserver extends BroadcastReceiver 
{
    static final String ACTION ="android.provider.Telephony.SMS_SENT";

    @Override 
    public void onReceive(Context context, Intent intent) 
    { 
        if (intent.getAction().equals(ACTION)) 
        {
                 //your action code here
        }            
    }

【讨论】:

  • 你能告诉我在哪里可以找到这个动作,我的意思是如果我想要一个想要的动作,我如何确认系统是否有它。我通常在platform/android**/data 找到它,但我没有找到这个动作。
  • 我没有找到Telephonyclass 中定义的意图。
  • 首先测试上面的代码,对我来说它工作正常,它对你有用吗?
  • 我只是想找一个可以找到所有系统意图动作的地方:)
【解决方案2】:

如果您在从应用程序发送时使用本地数据库来存储传出消息,这是可能的。

【讨论】:

  • 抱歉,该应用似乎删除了这些条目。数据库始终为空。
【解决方案3】:

尝试观察内容解析器,如下代码:

ContentResolver contentResolver = getContentResolver();
contentResolver.registerContentObserver("content://sms", true, yourObserver);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-05
    • 2017-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 2023-03-07
    相关资源
    最近更新 更多