Flutter短信管理插件amitor_sms的使用

Flutter短信管理插件amitor_sms的使用

开始使用

amitor_sms 是一个用于发送短信的插件。本项目是一个基于 Flutter 的插件包,包含 Android 和/或 iOS 平台特定的实现代码。

示例代码

以下是一个完整的示例代码,展示如何在 Flutter 应用程序中使用 amitor_sms 插件发送短信。

import 'package:amitor_sms/amitor_sms.dart';
import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _platformVersion = '未知';
  final _sendSmsPlugin = SendSms();

  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState();
  }

  // 平台消息是异步的,因此我们通过异步方法进行初始化。
  Future<void> initPlatformState() async {
    String platformVersion;
    // 平台消息可能会失败,所以我们使用 try/catch 来处理 PlatformException。
    // 我们还处理消息可能返回 null 的情况。
    try {
      platformVersion = await _sendSmsPlugin.getAskForPermission() ?? '未知平台版本';
    } on PlatformException {
      platformVersion = '获取平台版本失败。';
    }

    // 如果小部件从树中移除时异步平台消息还在飞行中,我们希望丢弃回复而不是调用 setState 来更新我们的非存在外观。
    if (!mounted) return;

    setState(() {
      _platformVersion = platformVersion;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('插件示例应用'),
        ),
        body: Center(
          child: TextButton(
            onPressed: () async {
              try {
                await _sendSmsPlugin.sendSms("7899758647", "From flutter");
              } on PlatformException {
                // 错误处理
              }
            },
            child: Text("发送短信"),
          ),
        ),
      ),
    );
  }
}

更多关于Flutter短信管理插件amitor_sms的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter短信管理插件amitor_sms的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


amitor_sms 是一个用于在 Flutter 应用中管理短信的插件。它允许你发送、接收和管理短信。以下是如何在 Flutter 项目中使用 amitor_sms 插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 amitor_sms 插件作为依赖项。

dependencies:
  flutter:
    sdk: flutter
  amitor_sms: ^0.0.1  # 请使用最新版本

然后运行 flutter pub get 以获取依赖项。

2. 配置权限

由于短信管理涉及到敏感权限,你需要在 AndroidManifest.xml 文件中添加必要的权限。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.yourapp">

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

    <application
        android:label="YourApp"
        android:icon="@mipmap/ic_launcher">
        <!-- Other configurations -->
    </application>
</manifest>

3. 请求运行时权限

在 Android 6.0(API 级别 23)及更高版本中,你需要在运行时请求权限。你可以使用 permission_handler 插件来请求权限。

import 'package:permission_handler/permission_handler.dart';

Future<void> requestPermissions() async {
  if (await Permission.sms.request().isGranted) {
    // 权限已授予
  } else {
    // 权限被拒绝
  }
}

4. 使用 amitor_sms 插件

以下是一些使用 amitor_sms 插件的示例代码。

发送短信

import 'package:amitor_sms/amitor_sms.dart';

Future<void> sendSms() async {
  try {
    await AmitorSms.sendSms(
      phoneNumber: '1234567890',
      message: 'Hello, this is a test message!',
    );
    print('SMS sent successfully');
  } catch (e) {
    print('Failed to send SMS: $e');
  }
}

接收短信

import 'package:amitor_sms/amitor_sms.dart';

StreamSubscription<SmsMessage>? smsSubscription;

void startListening() {
  smsSubscription = AmitorSms.onSmsReceived.listen((SmsMessage message) {
    print('Received SMS from ${message.address}: ${message.body}');
  });
}

void stopListening() {
  smsSubscription?.cancel();
}

读取短信

import 'package:amitor_sms/amitor_sms.dart';

Future<void> readSms() async {
  try {
    List<SmsMessage> messages = await AmitorSms.getSmsMessages();
    for (var message in messages) {
      print('SMS from ${message.address}: ${message.body}');
    }
  } catch (e) {
    print('Failed to read SMS: $e');
  }
}
回到顶部