Skip to main content

短信息

通过此类,我们可以获取到手机设备中的短信息。

from ascript.android import sms
注意事项
  1. 使用短信 API 前,请确保已经获取了读短信权限。
  2. 重要:请前往应用的辅助权限设置中开启短信相关权限,否则 API 可能无法正常工作。
  3. 频繁查询短信可能会影响应用性能,建议合理使用查询参数,避免一次性查询过多短信。
  4. 短信内容可能包含敏感信息,请妥善处理和保护用户隐私。

类型常量

常量名描述
sms.TYPE_INBOX1收件箱类型
sms.TYPE_SENT2已发送类型
sms.TYPE_DRAFT3草稿箱类型

方法

检查权限

检查是否有读短信权限。

  • 函数
sms.has_permission():
  • 返回值

  • bool - 是否有读短信权限

  • 示例

# 检查是否有短信权限
from ascript.android import sms
if sms.has_permission():
print("有短信权限")
else:
print("无短信权限")

申请权限

拉起权限申请页。

  • 函数
sms.request_permission():
  • 返回值

  • 示例

# 申请短信权限
from ascript.android import sms
if not sms.has_permission():
sms.request_permission()

获取第一条短信

获取第一条短信。

  • 函数
sms.get_first():
  • 返回值

  • Optional[Dict[str, Any]] - 短信信息字典,无短信时返回 None

  • 示例

# 获取第一条短信
from ascript.android import sms
first_sms = sms.get_first()
print(f"第一条短信: {first_sms}")

获取收件箱第一条短信

获取收件箱第一条短信。

  • 函数
sms.get_first_inbox():
  • 返回值

  • Optional[Dict[str, Any]] - 短信信息字典,无短信时返回 None

  • 示例

# 获取收件箱第一条短信
from ascript.android import sms
first_inbox = sms.get_first_inbox()
print(f"收件箱第一条短信: {first_inbox}")

获取已发送第一条短信

获取已发送第一条短信。

  • 函数
sms.get_first_sent():
  • 返回值

  • Optional[Dict[str, Any]] - 短信信息字典,无短信时返回 None

  • 示例

# 获取已发送第一条短信
from ascript.android import sms
first_sent = sms.get_first_sent()
print(f"已发送第一条短信: {first_sent}")

获取最近 N 条短信

获取最近 N 条短信。

  • 函数
sms.get_recent(count: int = 10):
  • 参数
参数类型是否必填说明
countint要获取的短信数量,默认 10
  • 返回值

  • List[Dict[str, Any]] - 短信信息字典列表

  • 示例

# 获取最近 5 条短信
from ascript.android import sms
recent_sms = sms.get_recent(5)
print(f"最近 5 条短信: {recent_sms}")

获取收件箱最近 N 条短信

获取收件箱最近 N 条短信。

  • 函数
sms.get_recent_inbox(count: int = 10):
  • 参数
参数类型是否必填说明
countint要获取的短信数量,默认 10
  • 返回值

  • List[Dict[str, Any]] - 短信信息字典列表

  • 示例

# 获取收件箱最近 5 条短信
from ascript.android import sms
recent_inbox = sms.get_recent_inbox(5)
print(f"收件箱最近 5 条短信: {recent_inbox}")

按号码查询短信

按号码查询短信。

  • 函数
sms.get_by_address(address: str, limit: int = 100):
  • 参数
参数类型是否必填说明
addressstr手机号码
limitint查询结果数量限制,默认 100
  • 返回值

  • List[Dict[str, Any]] - 短信信息字典列表

  • 示例

# 按号码查询短信
from ascript.android import sms
sms_by_address = sms.get_by_address("10086", 10)
print(f"来自 10086 的短信: {sms_by_address}")

灵活查询短信

灵活查询短信。

  • 函数
sms.query(sms_type: Optional[int] = None, address: Optional[str] = None, limit: int = 0, order_desc: bool = True, offset: int = 0):
  • 参数
参数类型是否必填说明
sms_typeOptional[int]短信类型,可选值为 TYPE_INBOXTYPE_SENTTYPE_DRAFT,为 None 时查询所有类型
addressOptional[str]手机号码,为 None 时查询所有号码
limitint查询结果数量限制,0 表示无限制
order_descbool是否按时间倒序排列,默认 True
offsetint跳过前 N 条(从 0 开始),用于分页
  • 返回值

  • List[Dict[str, Any]] - 短信信息字典列表

  • 示例

# 查询所有收件箱短信,按时间倒序,限制 20 条
from ascript.android import sms
inbox_sms = sms.query(sms_type=sms.TYPE_INBOX, limit=20)
print(f"收件箱短信: {inbox_sms}")

# 分页查询,获取第 21-40 条短信
page2_sms = sms.query(limit=20, offset=20)
print(f"第 2 页短信: {page2_sms}")

获取短信范围

获取第 start 条到第 end 条短信(含,1-based)。

  • 函数
sms.get_range(start: int, end: int, sms_type: Optional[int] = None, address: Optional[str] = None):
  • 参数
参数类型是否必填说明
startint起始位置(从 1 开始)
endint结束位置(包含)
sms_typeOptional[int]短信类型,可选值为 TYPE_INBOXTYPE_SENTTYPE_DRAFT,为 None 时查询所有类型
addressOptional[str]手机号码,为 None 时查询所有号码
  • 返回值

  • List[Dict[str, Any]] - 短信信息字典列表

  • 示例

# 获取第 10-20 条短信
from ascript.android import sms
range_sms = sms.get_range(10, 20)
print(f"第 10-20 条短信: {range_sms}")

获取诊断信息

获取诊断信息。

  • 函数
sms.debug_info():
  • 返回值

  • dict - 诊断信息字典

  • 示例

# 获取诊断信息
from ascript.android import sms
debug_info = sms.debug_info()
print(f"诊断信息: {debug_info}")