栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在没有用户互动的情况下发送短信?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在没有用户互动的情况下发送短信?

实际上,要以编程方式发送SMS,您需要实现一个平台通道并用于

SMSManager
发送SMS。

例:

Android部分:

首先向添加适当的权限

AndroidManifest.xml

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

然后在您的

MainActivity.java

package com.yourcompany.example;import android.os.Bundle;import android.telephony.SmsManager;import android.util.Log;import io.flutter.app.FlutterActivity;import io.flutter.plugin.common.MethodCall;import io.flutter.plugin.common.MethodChannel;import io.flutter.plugins.GeneratedPluginRegistrant;public class MainActivity extends FlutterActivity {  private static final String CHANNEL = "sendSms";  private MethodChannel.Result callResult;  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    GeneratedPluginRegistrant.registerWith(this);    new MethodChannel(getFlutterView(), CHANNEL).setMethodCallHandler( new MethodChannel.MethodCallHandler() {   @Override   public void onMethodCall(MethodCall call, MethodChannel.Result result) {     if(call.method.equals("send")){        String num = call.argument("phone");        String msg = call.argument("msg");        sendSMS(num,msg,result);     }else{       result.notImplemented();     }   } });  }  private void sendSMS(String phoneNo, String msg,MethodChannel.Result result) {      try {          SmsManager smsManager = SmsManager.getDefault();          smsManager.sendTextMessage(phoneNo, null, msg, null, null);          result.success("SMS Sent");      } catch (Exception ex) {          ex.printStackTrace();          result.error("Err","Sms Not Sent","");      }  }}

飞镖代码:

import 'dart:async';import 'package:flutter/material.dart';import 'package:flutter/widgets.dart';import 'package:flutter/services.dart';void main() {  runApp(new MaterialApp(    title: "Rotation Demo",    home: new SendSms(),  ));}class SendSms extends StatefulWidget {  @override  _SendSmsState createState() => new _SendSmsState();}class _SendSmsState extends State<SendSms> {  static const platform = const MethodChannel('sendSms');  Future<Null> sendSms()async {    print("SendSMS");    try {      final String result = await platform.invokeMethod('send',<String,dynamic>{"phone":"+91XXXXXXXXXX","msg":"Hello! I'm sent programatically."}); //Replace a 'X' with 10 digit phone number      print(result);    } on PlatformException catch (e) {      print(e.toString());    }  }  @override  Widget build(BuildContext context) {    return new Material(      child: new Container(        alignment: Alignment.center,        child: new FlatButton(onPressed: () => sendSms(), child: const Text("Send SMS")),      ),    );  }}

希望这对您有所帮助!

** 注意:

1.示例代码未显示如何在版本

6.0
及更高版本的android设备上处理权限。如果用于
6.0
实现正确的权限调用代码。

2.在双卡双待手机的情况下,该示例也未实现选择SIM卡。如果在双SIM卡手机上未为短信设置默认SIM卡,则可能不会发送短信。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/413815.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号