Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.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 存储检索到的数据并将其发送到提供的mailid_Android_Email_Messagebox_Information Retrieval - Fatal编程技术网

Android 存储检索到的数据并将其发送到提供的mailid

Android 存储检索到的数据并将其发送到提供的mailid,android,email,messagebox,information-retrieval,Android,Email,Messagebox,Information Retrieval,根据客户端的用途,我必须制作一个应用程序,在后台检索消息数据并发送到他的电子邮件。 实际上,我不知道如何存储检索到的数据以及如何通过提供的电子邮件发送数据。 我制作了一个包含email字段的主类,另一个检索消息数据的类和一个服务类。 请建议我如何做…使用此代码,当收到任何短信并向特定邮件id发送电子邮件时,它将触发: 主要活动: public class MainActivity extends Activity { @Override protected void onCreate(Bund

根据客户端的用途,我必须制作一个应用程序,在后台检索消息数据并发送到他的电子邮件。 实际上,我不知道如何存储检索到的数据以及如何通过提供的电子邮件发送数据。 我制作了一个包含email字段的主类,另一个检索消息数据的类和一个服务类。
请建议我如何做…

使用此代码,当收到任何短信并向特定邮件id发送电子邮件时,它将触发:

主要活动:

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
        Intent intent= new Intent(MainActivity.this, SmsApp.class);
    sendBroadcast(intent);
}

}
广播接收机:

 public class SmsApp extends BroadcastReceiver {
private static final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";
private static final String TAG = "SMSBroadcastReceiver";

@Override
public void onReceive(Context context, Intent intent) {
    Bundle bundle = intent.getExtras();
    if (intent.getAction()
            .equals("android.provider.Telephony.SMS_RECEIVED"))
        if (bundle != null) {
            Object[] pdus = (Object[]) bundle.get("pdus");
            SmsMessage[] messages = new SmsMessage[pdus.length];
            for (int i = 0; i < pdus.length; i++) {
                messages[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
            }
            if (messages.length > -1) {
                 Intent intent2 = new Intent(context,SecondActivity.class);
                            context.startActivity(intent2);
                intent2.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                /*intent2.putExtra("sender",
                        messages[0].getOriginatingAddress());*/
                intent2.putExtra("message", messages[0].getMessageBody());
                context.startActivity(intent2);
            }

        }

            }
        }
    }
}
}
在清单文件中添加权限:

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

您需要将要发送的数据写入SD卡上的文件。以下是您如何格式化您想要做的事情的意图(来自我正在使用的代码,该代码通过电子邮件发送我已经写入SD卡的XML文件):


这是我自己学的。出于安全原因,您必须将要附加到SD卡上的电子邮件的文件放在公共场所。

使用AsyncTask在后台检索数据,并使用Intent.ACTION\u SEND发送邮件只有在您在任何移动设备上运行该文件后,它才会在后台工作。如果您收到任何短信,它将在后台发送电子邮件,其广播接收器只需更改即可此电子邮件id:recipient@example.com在接收模拟器中安装此应用程序之前,请使用两个模拟器尝试此代码,然后从一个模拟器向另一个模拟器发送sms…但我需要保留此代码recipient@example.comdynamic.ya您也可以这样做,而不是在广播接收器中发送电子邮件,您可以编写一些代码如果你想动态地提供数据,但你必须将此消息正文作为捆绑包发送到该活动,这很简单……但是先生,我与UI无关。所有过程都应该在后台进行,即检索数据并将其发送。我对我如何在提供的ID上存储检索数据和邮件感到困惑,也许你可以使用额外的文本而不是额外的_流,只发送您想要的文本,而不必先保存它。
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" >
</uses-permission>
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.INTERNET" />
Intent i = new Intent(Intent.ACTION_SEND);
i.setType("text/plain");
i.putExtra(Intent.EXTRA_EMAIL, emailID)      // The string that has the email ID you are sending to
i.putExtra(Intent.EXTRA_STREAM, fileURI);    // The URI of the file on the SD card
startActivity(Intent.createChooser(i, "Email:"));