1

私はSMSコマンドを認識しなければならないアプリケーションを開発してきました。だから、私は最後のSMSを取得する方法を知る必要があります。BroadcastReceiverを使用する必要があることは知っていますが(そしてそれを使用しています)、このクラスの最後のSMSを取得する方法がわかりません。どうか、私を助けてください、あなたがそれをすることができることを願っています。前もって感謝します。

4

2 に答える 2

2

私のブログへのリンクをありがとうボー。

埋め込まれた Android データベース (sqlite) から最後のメッセージを取得するには、最初にカーソル インスタンスを作成する必要があります。

Cursor cursor = context.getContentResolver().query("content://sms", null, null, null, null);

次に、最初の SMS に移動します (最初の SMS は最後の受信者です ;))

cursor.moveToFirst();

Boがあなたに言ったように、私のブログを見てください;)

// リンクを削除

乾杯

于 2012-05-17T14:49:59.880 に答える
1

以下のコードを参照してください。

                    Uri myMessage = Uri.parse("content://sms/");

                    ContentResolver cr = con.getContentResolver();
                    Cursor c = cr.query(myMessage, new String[] { "_id",
                            "address", "date", "body", "read" }, null,
                            null, null);

                    startManagingCursor(c);
                    Main_calss.getSmsLogs(c, con);

public static final ArrayList<String> sms_num = new ArrayList<String>();
public static final ArrayList<String> sms_body = new ArrayList<String>();


public static void getSmsLogs(Cursor c, Context con) {

    if (sms_num.size() > 0) {
        sms_num.clear();
        sms_body.clear();
    }

    try {

        if (c.moveToFirst()) {
            do {
                Log.d("error",
                        ""
                                + c.getString(c
                                        .getColumnIndexOrThrow("address")));
                if (c.getString(c.getColumnIndexOrThrow("address")) == null) {
                    c.moveToNext();
                    continue;
                }

                String Number = c.getString(
                        c.getColumnIndexOrThrow("address")).toString();
                String Body = c.getString(c.getColumnIndexOrThrow("body"))
                        .toString();

                sms_num.add(Number);

                sms_body.add(Body);
            } while (c.moveToNext());
        }
        c.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

これをしなければならない最後のマッサージを受けてください。

sms_num.get(sms_num.size()-1);
sms_body.get(sms_num.size()-1);

それが正しい場合は、それを正しくします。

于 2012-05-17T14:58:21.773 に答える