Как я могу использовать составление электронной почты в tabView? - PullRequest
0 голосов
/ 16 марта 2012

Я хочу, чтобы составить электронную почту во вкладке Activity. Это мой код.

        TabHost tabHost=getTabHost();
    TabHost.TabSpec spec;
    Intent intent;

    //View tabView= tabHost.getChildAt(0);
    //tabView.setPadding(0, 13, 0, 13);
    //tabView.setBackgroundColor(0xFFFFFFFF);
    intent=new Intent("com.android.phone.action.RECENT_CALLS").setClass(this,CallListActivity.class);
    spec=tabHost.newTabSpec("Call").setIndicator("Call").setContent(intent);
    tabHost.addTab(spec);

    intent=new Intent("android.intent.action.Compose_EMAIL");
    intent.setClassName("com.android.email", "com.android.email.activity.MessageCompose");
    spec=tabHost.newTabSpec("Message").setIndicator("Message").setContent(intent);
    tabHost.addTab(spec);    

    intent=new Intent().setClass(this, com.android.contacts.qs.logger.email.QsEmailLogger.class);
    spec=tabHost.newTabSpec("Email").setIndicator("Email").setContent(intent);
    tabHost.addTab(spec);

    intent=new Intent().setClass(this,com.android.contacts.qs.logger.notification.NotificationLogger.class);
    spec=tabHost.newTabSpec("Notification").setIndicator("Notification").setContent(intent);
    tabHost.addTab(spec);                      

    tabHost.setCurrentTab(0);

Этот код генерирует ошибку. Ошибка 03-16 12: 04: 09.132: E / AndroidRuntime (312): java.lang.SecurityException: запрос кода из com.android.email (с uid 10011) для запуска в процессе android.process.acore (с идентификатором 10001)

   intent=new Intent("android.intent.action.Compose_EMAIL");
    intent.setClassName("com.android.email", "com.android.email.activity.MessageCompose");
    spec=tabHost.newTabSpec("Message").setIndicator("Message").setContent(intent);
    tabHost.addTab(sp

Ответы [ 2 ]

1 голос
/ 20 марта 2012

В манифесте приложения напишите следующие строки:

android:sharedUserId="android.uid.shared"
android:sharedUserLabel="@string/sharedUserLabel"

Параметр sharedUserId используется для обмена кодом, обработкой данных между двумя приложениями.Таким образом, этот код будет применяться в обоих приложениях.

, а также записывать эти строки в файл .mk обоих приложений ...

LOCAL_CERTIFICATE := shared
1 голос
/ 16 марта 2012

при нажатии кнопки табуляции вы можете вызвать метод

        tv_email.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {

                sendSimpleEmail(tv_email);
            }
        });        

это метод, который используется для открытия окна составления электронной почты, вызовите этот метод по клику

  public void sendSimpleEmail(View textView) {
    try {

  Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
        emailIntent.setType("plain/text");

        emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,
                new String[] { email_add });
        startActivity(emailIntent);
    } catch (Exception e) {

        Toast.makeText(getApplicationContext(),
                "First Log in to your Email Account", Toast.LENGTH_LONG)
                .show();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...