Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从默认短信应用程序获取短信活动结果_Android - Fatal编程技术网

Android 从默认短信应用程序获取短信活动结果

Android 从默认短信应用程序获取短信活动结果,android,Android,我创建了以下方法来打开设备的默认SMS应用程序,并用消息和(可选)电话号码预填充它 我想知道的是,只有在发送短信后,如何才能从短信活动中获得返回的结果\u OK?目前,当我退出SMS活动时,我得到了一个被取消的结果 有没有一种简单的方法可以确定返回到我的应用程序时是否发送了短信 public static void sendSMS(Activity activity, String message, String phoneNumber){ boolean hasPhoneNu

我创建了以下方法来打开设备的默认SMS应用程序,并用消息和(可选)电话号码预填充它

我想知道的是,只有在发送短信后,如何才能从短信活动中获得返回的
结果\u OK
?目前,当我退出SMS活动时,我得到了一个被取消的
结果

有没有一种简单的方法可以确定返回到我的应用程序时是否发送了短信

public static void sendSMS(Activity activity, String message, String phoneNumber){

        boolean hasPhoneNumber = phoneNumber != null;

        if(message == null){
            showSMSError(activity, null);
            return;
        }

        Intent smsIntent;

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){
            smsIntent = new Intent(Intent.ACTION_SENDTO);
            //Ensures only SMS apps respond
            smsIntent.setData(Uri.parse("smsto:" + (hasPhoneNumber ? phoneNumber : "")));
            //No resolvable activity
            if (smsIntent.resolveActivity(activity.getPackageManager()) == null) {
                showSMSError(activity, null);
                return;
            }
        }else{
            //Old way of accessing sms activity
            smsIntent = new Intent(Intent.ACTION_VIEW);
            smsIntent.setType("vnd.android-dir/mms-sms");
            if(hasPhoneNumber) {
                smsIntent.putExtra("address", phoneNumber);
            }
            smsIntent.putExtra("exit_on_sent", true);
        }
        smsIntent.putExtra("sms_body", message);
        activity.startActivityForResult(smsIntent, SMS_ACTIVITY_REQUEST);
    }
我想知道的是,只有在发送短信后,我如何才能从短信活动中获得返回的结果

编写您自己的SMS客户端应用程序,以支持
startActivityForResult()
的方式实现其
ACTION\u发送到
ACTION\u查看
活动。那些
Intent
操作没有记录为有结果,这就是为什么现有SMS客户端很少(如果有的话)会设置结果

我想知道的是,只有在发送短信后,我如何才能从短信活动中获得返回的结果

编写您自己的SMS客户端应用程序,以支持
startActivityForResult()
的方式实现其
ACTION\u发送到
ACTION\u查看
活动。那些
Intent
操作没有记录为有结果,这就是为什么现有SMS客户端很少(如果有的话)会设置结果

我想知道的是,只有在发送短信后,我如何才能从短信活动中获得返回的结果

编写您自己的SMS客户端应用程序,以支持
startActivityForResult()
的方式实现其
ACTION\u发送到
ACTION\u查看
活动。那些
Intent
操作没有记录为有结果,这就是为什么现有SMS客户端很少(如果有的话)会设置结果

我想知道的是,只有在发送短信后,我如何才能从短信活动中获得返回的结果


编写您自己的SMS客户端应用程序,以支持
startActivityForResult()
的方式实现其
ACTION\u发送到
ACTION\u查看
活动。这些
意图
操作没有记录为有结果,这就是为什么现有SMS客户端很少(如果有)会设置结果。

只是为了确保我理解您的答案,您的意思是使用
smsmsmanager
?@EdGeorge通过应用程序发送短信:这将是了解短信是否已发送的更有效方法。第三方短信客户端不会返回结果,因为文档中说他们不应该返回结果,您不能更改。为了确保我理解您的答案,您的意思是使用
smsmsmanager
?@EdGeorge通过应用程序发送短信:这将是了解短信是否已发送的更有效方法。第三方短信客户端不会返回结果,因为文档中说他们不应该返回结果,您不能更改。为了确保我理解您的答案,您的意思是使用
smsmsmanager
?@EdGeorge通过应用程序发送短信:这将是了解短信是否已发送的更有效方法。第三方短信客户端不会返回结果,因为文档中说他们不应该返回结果,您不能更改。为了确保我理解您的答案,您的意思是使用
smsmsmanager
?@EdGeorge通过应用程序发送短信:这将是了解短信是否已发送的更有效方法。第三方SMS客户端将不会返回结果,因为文档说明他们不应返回结果,并且您无法更改该结果。