相关疑难解决方法(0)

在Android中发送和接收短信和彩信(pre Kit Kat Android 4.4)

我已经弄明白了如何发送和接收短信.要发送短信,我必须调用该类的sendTextMessage()sendMultipartTextMessage()方法SmsManager.要接收SMS消息,我必须在AndroidMainfest.xml文件中注册接收器.然后我不得不重写onReceive()方法BroadcastReceiver.我在下面列举了一些例子.

MainActivity.java

public class MainActivity extends Activity {
    private static String SENT = "SMS_SENT";
    private static String DELIVERED = "SMS_DELIVERED";
    private static int MAX_SMS_MESSAGE_LENGTH = 160;

    // ---sends an SMS message to another device---
    public static void sendSMS(String phoneNumber, String message) {

        PendingIntent piSent = PendingIntent.getBroadcast(mContext, 0, new Intent(SENT), 0);
        PendingIntent piDelivered = PendingIntent.getBroadcast(mContext, 0,new Intent(DELIVERED), 0);
        SmsManager smsManager = SmsManager.getDefault();

        int length = message.length();          
        if(length > MAX_SMS_MESSAGE_LENGTH) …
Run Code Online (Sandbox Code Playgroud)

sms android mms broadcastreceiver android-manifest

131
推荐指数
3
解决办法
11万
查看次数

如何检查成功的多部分短信发送

我已经阅读了很多关于发送短信和多部分短信的帖子,例如:

在Android中发送短信,在Android发送和接收短信和彩信(pre Kit Kat Android 4.4), Android PendingIntent附加功能,未被BroadcastReceiver接收

......和其他人,但他们似乎没有检查消息的所有部分是否已成功发送.

根据我的理解,使用多部分消息,您为每个消息部分添加PendingIntent,但我看到的示例似乎没有检查所有部分是否已成功发送...如果是(我猜第一个) )他们似乎认为它是成功的......

所以我想我会发送一个多部分的消息并跟踪这些部分.在成功发送所有部件之前,我不会说消息已成功发送.

我试图在以下代码中执行此操作... SmsMessageInfo只是一个简单的类,其中包含电话号码,消息和已处理部件的布尔列表以及成功发送的部件列表,它还具有唯一的消息ID.

我尝试过以下方法:

private void sendLongSmsMessage(Context context, final SmsMessageInfo messageInfo) {

    // Receive when each part of the SMS has been sent (or does it????)
    context.registerReceiver(new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String messageIdAsString = intent.getExtras().getString(INTENT_EXTRA_MESSAGE_ID_KEY);

            Log.i("SMSMessageSender", "Broadcast Intent Recieved, IntentMessageID: " + messageIdAsString + "  messageInfoId: " + messageInfo.messageId);

            if (messageIdAsString != null) {
                if (Long.parseLong(messageIdAsString) == messageInfo.messageId) {
                    String …
Run Code Online (Sandbox Code Playgroud)

android smsmanager

3
推荐指数
1
解决办法
6969
查看次数

如何在 Android 中发送短信?

如何发送短信?这看起来很简单,但对我来说不起作用。

我在清单中获得了许可:

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

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

<application   ...
Run Code Online (Sandbox Code Playgroud)

然后我的 onClick 中有这段代码:

SmsManager smsManager = SmsManager.getDefault();

smsManager.sendTextMessage("07123456789", null, "Hello there!", null, null);

Intent sendIntent = new Intent(Intent.ACTION_VIEW);
sendIntent.putExtra("sms_body", "default content");
sendIntent.setType("vnd.android-dir/mms-sms");
                            startActivity(sendIntent);
Run Code Online (Sandbox Code Playgroud)

但是当我运行这个程序时,我得到“不幸的是应用程序已停止”。

以及错误消息:

FATAL EXCEPTION: main
Process: com.healthapp.healthapp, PID: 13477
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW typ=vnd.android-dir/mms-sms (has extras) }
Run Code Online (Sandbox Code Playgroud)

java sms android smsmanager

2
推荐指数
1
解决办法
4006
查看次数