AndroidFacadeAPI

SMS

このエントリーをはてなブックマークに追加
最終更新日 2012-12-02

メッセージ送信

次に示すのは、SMS (Short Message Service) を利用してメッセージを送信する例です。

import android
droid = android.Android()
droid.smsSend("1234567890", "Hello, SL4A")

smsSend() の引数は順に、送信先の電話番号、メッセージ文字列です。

メッセージ取得

メッセージを取得するためにはメッセージ属性を指定する必要があります。 smsGetAttributes() を呼び出すと、指定可能な属性のリストを取得することができます。

import android
droid = android.Android()
attributes = droid.smsGetAttributes()
for i in attributes.result:
    print i

主な属性をいくつか示します。

属性 説明
_id メッセージ ID
address 電話番号
date 日時
read 既読フラグ
body メッセージ本文

smsGetMessages() を呼び出すと、メッセージ情報を取得することができます。 次に示すのは、全メッセージの電話番号とメッセージ本文を取得する例です。

import android
droid = android.Android()
messages = droid.smsGetMessages(False, "inbox", ["address", "body"])
for i in messages.result:
    print i["address"].encode("utf-8")
    print i["body"].encode("utf-8")

smsGetMessages() の引数は順に、未読メッセージのみを取得するかどうかのフラグ、フォルダ名、属性のリストで、第2、第3引数は省略可能です。 第2引数を省略した場合はデフォルトフォルダとして "inbox" を使用し、 第3引数を省略した場合は ["_id", "address", "date", "read", "body"] を使用します。

特定のメッセージ情報を取得するためにはメッセージ ID を指定する必要があります。 smsGetMessageIds() を呼び出すと、メッセージ ID のリストを取得することができます。 次に示すのは、全メッセージのメッセージ ID を取得する例です。

import android
droid = android.Android()
ids = droid.smsGetMessageIds(False)
for i in ids.result:
    print i

smsGetMessageIds() の引数は順に、未読メッセージのみを取得するかどうかのフラグ、フォルダ名で、第2引数は省略可能です。 第2引数を省略した場合はデフォルトフォルダとして "inbox" を使用します。

smsGetMessageById() を呼び出すと、指定したメッセージ ID のメッセージ情報を取得することができます。 次に示すのは、メッセージ ID が 1 の電話番号とメッセージ本文を取得する例です。

import android
droid = android.Android()
message = droid.smsGetMessageById(1, ["address", "body"]).result
print message["address"].encode("utf-8")
print message["body"].encode("utf-8")

smsGetMessageById() の引数は順に、メッセージ ID、属性のリストで、第2引数は省略可能です。 第2引数を省略した場合は ["_id", "address", "date", "read", "body"] を使用します。

smsGetMessageCount() を呼び出すと、メッセージ数を取得することができます。 次に示すのは、未読メッセージ数を取得する例です。

import android
droid = android.Android()
print droid.smsGetMessageCount(True).result

smsGetMessageCount() の引数は順に、未読メッセージのみを取得するかどうかのフラグ、フォルダ名で、第2引数は省略可能です。 第2引数を省略した場合はデフォルトフォルダとして "inbox" を使用します。

smsMarkMessageRead() を呼び出すと、メッセージの未読/既読を切り替えることができます。 次に示すのは、メッセージ ID が 1 と 2 のメッセージを未読に切り替える例です。

import android
droid = android.Android()
droid.smsMarkMessageRead([1, 2], False)

smsMarkMessageRead() の引数は順に、メッセージ ID のリスト、既読にするかどうかのフラグです。

メッセージ削除

次に示すのは、メッセージを削除する例です。

import android
droid = android.Android()
droid.smsDeleteMessage(0)

smsDeleteMessage() の引数はメッセージ ID です。