npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@bitstart/react-native-sms-sender

v0.2.2

Published

React Native SMS Sender - Android Native Module with TurboModules

Downloads

19

Readme

@bitstart/react-native-sms-sender

React Native SMS/MMS 管理插件,支持 Android TurboModules 新架构。提供生产级的短信、彩信管理能力,内置多重监听保障与后台保活机制。

✨ 功能特性

📱 短信/彩信核心

  • 高性能聚合:采用手动 Union (SMS + MMS) 方案聚合会话列表,稳定超越系统默认视图。
  • 彩信富文本:支持解析彩信附件(图片、文本部分),提供智能内容摘要。
  • 深度操作:支持标记已读(同步更新 SMS/MMS 表)、删除单条消息或整个会话。
  • 发送能力:支持单发短信、批量群发短信、通过 Intent 发送彩信。

📲 全方位监听

  • 四重保障:集成 BroadcastReceiverContentObserverNotificationListener,确保不同系统环境下消息接收 100% 到达。
  • 智能提取:内置验证码自动提取引擎,支持自动复制到剪切板。

🔋 生产级保活

  • 常驻服务:可配置的前台服务(Foreground Service)。
  • 策略组合:支持一像素保活 Activity、开机自启、忽略电池优化。
  • 全量诊断:内置 getDiagnostics 接口,一键排查权限、服务与设备状态。

📶 SIM 卡与兼容性

  • 多卡支持:精准获取双卡信息(运营商、卡槽、手机号),支持指定 SIM 卡发送。
  • RoleManager 适配:兼容 Android 10+ 的 RoleManager 默认短信应用申请流程。

📦 安装

npm install @bitstart/react-native-sms-sender
# 或
yarn add @bitstart/react-native-sms-sender

🔧 权限配置

android/app/src/main/AndroidManifest.xml 中添加:

<manifest>
    <!-- 基础通信 -->
    <uses-permission android:name="android.permission.SEND_SMS" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_MMS" />
    <uses-permission android:name="android.permission.WRITE_SMS" /> <!-- 仅默认应用有效 -->

    <!-- 增强功能 -->
    <uses-permission android:name="android.permission.READ_CONTACTS" /> <!-- 联系人匹配 -->
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- SIM卡信息 -->
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> <!-- Android 13+ 通知 -->

    <!-- 保活机制 -->
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
    <uses-permission android:name="android.permission.FOREGROUND_SERVICE_SPECIAL_USE" />
    <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
</manifest>

📖 核心使用

1. 系统诊断与权限请求

import SmsSender from "@bitstart/react-native-sms-sender";

// 获取完整诊断报告
const diag = await SmsSender.getDiagnostics();
console.log(diag.permissions.isDefaultSmsApp); // 是否为默认应用

// 请求必要权限
await SmsSender.requestReadPermission(); // 申请短信与联系人
await SmsSender.requestDefaultSmsApp();  // 申请成为默认应用 (Android 10+ 自动使用 RoleManager)

2. 会话与消息管理

// 获取聚合会话列表 (按时间降序)
const { conversations } = await SmsSender.getConversations({ limit: 50 });

// 获取会话内的详细消息 (支持 MMS 附件)
const { messages } = await SmsSender.getConversationMessages(threadId, { limit: 100 });

// 标记整个会话已读 (需要默认应用身份)
await SmsSender.markConversationAsRead(threadId);

// 删除消息
await SmsSender.deleteMessage(messageId, 'sms');

3. 发送短信

// 单发
await SmsSender.sendSms({
  phoneNumber: "10086",
  body: "查询余额",
  skipConfirmation: true, // true 为后台直接发送,false 为跳到系统界面
  simSlotIndex: 0        // 指定卡槽
});

// 批量群发 (直接发送)
await SmsSender.sendBatchSms({
  phoneNumbers: ["10086", "10010"],
  body: "统一通知内容"
});

4. 短信监听与日志桥接

// 监听新短信/彩信
const sub = SmsSender.addSmsListener((event) => {
  console.log("收到新消息:", event.body);
});

// 订阅原生层运行日志 (调试利器)
const logSub = SmsSender.addLogListener((log) => {
  console.log(`[Native ${log.level}] ${log.message}`);
});

5. 后台保活服务

// 修改保活配置
await SmsSender.setConfig({
  keepAliveEnabled: true,
  onePixelEnabled: true,
  notificationEnabled: true
});

// 启动前台服务
await SmsSender.startKeepAlive();

// 一键停止所有保活 (包含服务关闭与配置重置)
await SmsSender.stopKeepAlive();

⚠️ 重要说明

  1. 修改权限制约:Android 4.4+ 系统规定,**只有“默认短信应用”**才能修改短信状态(如删除、标记已读)。若非默认应用,相关操作会静默失败。
  2. NotificationListener:监听通知服务需要用户在系统设置中手动授权,点击 SmsSender.requestNotificationListenerSettings() 可直接跳转。
  3. 彩信附件:彩信图片通过 content://mms/part/ 协议提供 URI,JS 端可直接使用 <Image source={{uri: ...}} /> 渲染。

📝 最近更新 (v0.3.0)

  • ✨ 完美适配 Android TurboModule 新架构。
  • 🛠️ 重构会话聚合算法,大幅提升列表加载稳定性。
  • 🖼️ 补全彩信附件解析与富文本摘要逻辑。
  • 📊 新增原生日志桥接系统,方便前端排查插件状态。
  • 🔋 增强保活策略,支持一键彻底停用所有后台组件。

📄 License

MIT