0

我正在从应用程序中添加对 Android shell 的调用。我已经能够很好地调用 shell 脚本或基本 shell 命令,但现在我正在尝试发送电子邮件(主要是为了知道是否可以)并且遇到了一个奇怪的错误:

11-06 16:14:43.449: D/AndroidRuntime(28655): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
11-06 16:14:43.449: D/AndroidRuntime(28655): CheckJNI is OFF
11-06 16:14:43.629: D/AndroidRuntime(28655): Calling main entry com.android.commands.am.Am
11-06 16:14:43.639: D/AndroidRuntime(28655): Shutting down VM
11-06 16:14:43.639: I/ActivityManager(204): START {act=android.intent.action.SENDTO typ="text/plain" flg=0x10000000 pkg=Goes (has extras)} from pid 28655
11-06 16:14:43.649: D/dalvikvm(28655): GC_CONCURRENT freed 104K, 81% free 495K/2560K, paused 0ms+1ms
11-06 16:14:43.649: D/dalvikvm(28655): Debugger has detached; object registry had 1 entries
11-06 16:14:43.649: I/AndroidRuntime(28655): NOTE: attach of thread 'Binder Thread #2' failed

我的 shell 运行的代码是这样的:

am start -a android.intent.action.SENDTO -t "text/plain" --es android.intent.extra.EMAIL "myaddress@example.com" --es android.intent.extra.TEXT "Message Goes here" --es android.intent.extra.SUBJECT "this is the subject"

出了什么问题,我该如何解决?am我应该使用其他工具(除了)吗?

4

3 回答 3

1

尝试使用此代码发送电子邮件。在真实设备上运行此代码,因为 adb 没有任何第三方权限

包 com.rmn.emailSending;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;

public class EmailSendingActivity extends Activity {
    Button send;
    EditText address, subject, emailtext;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        send = (Button) findViewById(R.id.emailsendbutton);
        address = (EditText) findViewById(R.id.emailaddress);
        subject = (EditText) findViewById(R.id.emailsubject);
        emailtext = (EditText) findViewById(R.id.emailtext);

        send.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);

                emailIntent.setType("message/rfc822");
                emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[] { address.getText().toString() });
                emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,subject.getText().toString());
                emailIntent.putExtra(android.content.Intent.EXTRA_TEXT,emailtext.getText().toString());
                EmailSendingActivity.this.startActivity(Intent.createChooser(emailIntent, "Send mail in"));

            }
        });
    }
}
于 2012-11-07T06:53:35.347 回答
1

经过多次尝试,我开始相信您无法从am设备上启动 Activity。但是,您可以发送可用于启动 Activity 的广播。例如,要启动相机应用程序,您可以使用以下命令:

am broadcast -a android.intent.action.CAMERA_BUTTON
于 2012-11-07T22:00:25.563 回答
1

如果您在 adb shell 中,请尝试以下操作:

am start -a android.intent.action.SENDTO -d sms:xxx --es sms_body "xxx" --ez exit_on_sent true
input keyevent 66

我刚刚在运行 Android 4.0(ICS) 的 Droid X 上进行了尝试。它将发送短信并退出。请让我知道这可不可以帮你。

问候,

于 2012-11-07T00:24:28.560 回答