Android 读取传入消息,直到读取验证短信

Android 读取传入消息,直到读取验证短信,android,sms,broadcastreceiver,intentfilter,Android,Sms,Broadcastreceiver,Intentfilter,我希望在我的应用程序中添加短信阅读功能。用户在活动中输入其手机号码,然后从服务器向用户手机发送包含一次性密码的sms。我想做的是,在用户输入手机号码并希望收到来自服务器的消息后,触发应用程序读取传入消息 我在这里看到了一些这样的问题的答案 但解决办法似乎是阅读手机上的所有短信。在我的例子中,我只希望阅读功能仅在用户希望收到短信时启动,在收到短信时结束。检查此答案,了解如何注册接收者 您可以使用包管理器在运行时启用/禁用广播接收器 public void enableSmsModule() {

我希望在我的应用程序中添加短信阅读功能。用户在活动中输入其手机号码,然后从服务器向用户手机发送包含一次性密码的sms。我想做的是,在用户输入手机号码并希望收到来自服务器的消息后,触发应用程序读取传入消息

我在这里看到了一些这样的问题的答案


但解决办法似乎是阅读手机上的所有短信。在我的例子中,我只希望阅读功能仅在用户希望收到短信时启动,在收到短信时结束。

检查此答案,了解如何注册接收者


您可以使用包管理器在运行时启用/禁用广播接收器

public void enableSmsModule()
{
    PackageManager pm = getPackageManager();
    ComponentName componentName = new ComponentName(getApplicationContext(), SMSReceiver.class);
    pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 
            PackageManager.DONT_KILL_APP);
}

public void disableSmsModule()
{
    PackageManager pm = getPackageManager();
    ComponentName componentName = new ComponentName(getApplicationContext(), SMSReceiver.class);
    pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
            PackageManager.DONT_KILL_APP);
}
阅读短信的代码:

public void enableSmsModule()
{
    PackageManager pm = getPackageManager();
    ComponentName componentName = new ComponentName(getApplicationContext(), SMSReceiver.class);
    pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_ENABLED, 
            PackageManager.DONT_KILL_APP);
}

public void disableSmsModule()
{
    PackageManager pm = getPackageManager();
    ComponentName componentName = new ComponentName(getApplicationContext(), SMSReceiver.class);
    pm.setComponentEnabledSetting(componentName, PackageManager.COMPONENT_ENABLED_STATE_DISABLED, 
            PackageManager.DONT_KILL_APP);
}