如何实现APP短信发送功能?查看Demo了解详细步骤!

项目设置

确保你已经创建了一个新的Android项目,在项目的build.gradle文件中添加必要的依赖项。

app 短信发送demo

dependencies {
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.google.guava:guava:27.0.1-android'
}

权限声明

AndroidManifest.xml中声明必要的权限,包括发送SMS的权限:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.smsapp">
    
    <uses-permission android:name="android.permission.SEND_SMS"/>
    <uses-permission android:name="android.permission.INTERNET"/>
    
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

用户界面设计

res/layout/activity_main.xml中创建一个基本的用户界面,包含电话号码输入框和消息输入框,以及一个发送按钮:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    
    <EditText
        android:id="@+id/editTextPhoneNumber"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Enter Phone Number"
        android:inputType="phone"
        android:layout_marginTop="20dp"
        android:layout_centerHorizontal="true"/>
    
    <EditText
        android:id="@+id/editTextMessage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:hint="Enter Message"
        android:inputType="text"
        android:layout_below="@id/editTextPhoneNumber"
        android:layout_marginTop="20dp"
        android:layout_centerHorizontal="true"/>
    
    <Button
        android:id="@+id/buttonSend"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Send SMS"
        android:layout_below="@id/editTextMessage"
        android:layout_marginTop="20dp"
        android:layout_centerHorizontal="true"/>
</RelativeLayout>

主活动代码

MainActivity.java中编写逻辑来处理用户输入并发送短信:

package com.example.smsapp;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.telephony.SmsManager;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.Manifest;
import android.content.pm.PackageManager;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
public class MainActivity extends AppCompatActivity {
    private static final int PERMISSIONS_REQUEST_SEND_SMS = 1001;
    private EditText editTextPhoneNumber, editTextMessage;
    private Button buttonSend;
    private String phoneNumber, message;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editTextPhoneNumber = findViewById(R.id.editTextPhoneNumber);
        editTextMessage = findViewById(R.id.editTextMessage);
        buttonSend = findViewById(R.id.buttonSend);
        buttonSend.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                phoneNumber = editTextPhoneNumber.getText().toString();
                message = editTextMessage.getText().toString();
                if (phoneNumber.isEmpty() || message.isEmpty()) {
                    Toast.makeText(MainActivity.this, "Please enter both phone number and message", Toast.LENGTH_SHORT).show();
                    return;
                }
                checkPermissionAndSendSMS();
            }
        });
    }
    private void checkPermissionAndSendSMS() {
        if (ContextCompat.checkSelfPermission(this, Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.SEND_SMS}, PERMISSIONS_REQUEST_SEND_SMS);
        } else {
            sendSMS();
        }
    }
    private void sendSMS() {
        try {
            SmsManager smsManager = SmsManager.getDefault();
            smsManager.sendTextMessage(phoneNumber, null, message, null, null);
            Toast.makeText(MainActivity.this, "SMS sent successfully!", Toast.LENGTH_SHORT).show();
        } catch (Exception e) {
            e.printStackTrace();
            Toast.makeText(MainActivity.this, "Failed to send SMS", Toast.LENGTH_SHORT).show();
        }
    }
}

运行程序

你可以运行这个程序,当你点击“Send SMS”按钮时,如果已经授予了发送短信的权限,它将尝试发送短信并显示相应的提示信息,如果没有授予权限,则会请求权限。

这是一个基本的短信发送应用程序示例,根据实际需求,你可以进一步扩展和完善这个应用,例如添加更多的错误检查、UI优化等。

以上内容就是解答有关“app 短信发送demo”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/714278.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-12-07 20:18
Next 2024-12-07 20:21

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入