📜  获取短信 android (1)

📅  最后修改于: 2023-12-03 15:11:53.074000             🧑  作者: Mango

获取Android设备上的短信

在Android设备上,我们可以通过程序获取设备上的短信信息。这对于需要验证用户手机号码的应用程序来说非常有用。在本文中,我们将介绍如何在Android应用程序中获取短信。

权限声明

要获取短信,我们需要在应用程序清单中声明以下权限:

<uses-permission android:name="android.permission.READ_SMS" />

这将确保我们有权限读取设备上的短信。

代码实现
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 获取设备上的短信
        getSMS();
    }

    private void getSMS() {
        // 查询设备上的短信
        Cursor cursor = getContentResolver().query(Uri.parse("content://sms/inbox"), null, null, null, null);

        // 遍历查询结果
        if (cursor.moveToFirst()) {
            do {
                // 获取短信发送者的号码和内容
                String number = cursor.getString(cursor.getColumnIndex("address"));
                String body = cursor.getString(cursor.getColumnIndex("body"));

                // 添加对该条短信的处理逻辑
                Log.d("SMS", "Number: " + number + " Body: " + body);

            } while (cursor.moveToNext());
        }

        // 关闭查询结果集
        cursor.close();
    }
}

上述代码首先声明了READ_SMS权限,然后在应用程序启动时调用了getSMS()方法来查询设备上收件箱中的短信。我们使用getContentResolver().query()方法进行查询,并通过moveToFirst()moveToNext()方法遍历所有查询结果。

对于查询结果中的每一条短信,我们可以获取发送者的电话号码和短信内容,并在控制台中打印出来。在实际应用中,可以向服务器发送短信内容,或者通过其他方式验证用户的手机号码。

总结

在Android设备上获取短信是非常常见的任务,并且在许多应用程序中会用到。在本文中,我们介绍了如何声明必需的权限和查询设备上的短信,以获取所需的信息。希望这篇文章能够帮助您开始编写您自己的Android应用程序,以获取设备上的短信。