I have sent email via ACTION_SEND in android.
Here its successfully sent from android 2.2,but it is didn't sent from android 4.1.
I have used below code:
ImageView share = (ImageView) findViewById(R.id.imageView5);
share.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
final CharSequence[] items = {"Facebook", "Twitter", "Email"};
AlertDialog.Builder builder = new AlertDialog.Builder(SubCate.this);
builder.setTitle("Share Via:");
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
if(items[item] == "Facebook"){
Intent in = new Intent(SubCate.this, TestConnect.class);
in.putExtra("Title", _Substring);
startActivity(in);
}
if(items[item] == "Twitter"){
Intent in = new Intent(SubCate.this, TestConnect.class);
in.putExtra("Title", _Substring);
startActivity(in);
}
if(items[item] == "Email"){
Intent email = new Intent(Intent.ACTION_SEND);
email.setType("message/rfc822");
email.putExtra(Intent.EXTRA_EMAIL, new String[]{ ""});
email.putExtra(Intent.EXTRA_SUBJECT, _Substring);
email.putExtra(Intent.EXTRA_TEXT, _Description);
email.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://"+ getPackageName() + "/" + R.drawable.ic_launcher));
startActivity(Intent.createChooser(email, "Choose an Email client :"));
}
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
Why these code is didn't work in android 4.0 device.pls give me solution for these..
Here I have using alertlist dialog box.
I didn't use surface view anywhere.if i have remove these line
email.putExtra(Intent.EXTRA_STREAM, Uri.parse("android.resource://"+ getPackageName() + "/" + R.drawable.ic_launcher));
means its worked... the subject and text is sent to mail from android4.0...but i ahve facing problem only adding attach the image...pls give me solution.
Am getting following error:
04-12 10:36:04.722: E/ViewRootImpl(1461): IllegalArgumentException locking surface
04-12 10:36:04.722: E/ViewRootImpl(1461): java.lang.IllegalArgumentException
04-12 10:36:04.722: E/ViewRootImpl(1461): at android.view.Surface.lockCanvasNative(Native Method)
04-12 10:36:04.722: E/ViewRootImpl(1461): at android.view.Surface.lockCanvas(Surface.java:76)
04-12 10:36:04.722: E/ViewRootImpl(1461): at android.view.ViewRootImpl.draw(ViewRootImpl.java:1924)
04-12 10:36:04.722: E/ViewRootImpl(1461): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1613)
04-12 10:36:04.722: E/ViewRootImpl(1461): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2418)
04-12 10:36:04.722: E/ViewRootImpl(1461): at android.os.Handler.dispatchMessage(Handler.java:99)
04-12 10:36:04.722: E/ViewRootImpl(1461): at android.os.Looper.loop(Looper.java:137)
04-12 10:36:04.722: E/ViewRootImpl(1461): at android.app.ActivityThread.main(ActivityThread.java:4340)
04-12 10:36:04.722: E/ViewRootImpl(1461): at java.lang.reflect.Method.invokeNative(Native Method)
04-12 10:36:04.722: E/ViewRootImpl(1461): at java.lang.reflect.Method.invoke(Method.java:511)
04-12 10:36:04.722: E/ViewRootImpl(1461): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-12 10:36:04.722: E/ViewRootImpl(1461): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-12 10:36:04.722: E/ViewRootImpl(1461): at dalvik.system.NativeStart.main(Native Method)
EDIT:
ImageView share = (ImageView) getActivity().findViewById(R.id.imageView5);
share.setOnClickListener(new OnClickListener()
{
public void onClick ( View v )
{
final CharSequence[] items =
{
"Facebook", "Twitter", "Email"
};
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("Share Via:");
builder.setItems(items, new DialogInterface.OnClickListener()
{
public void onClick ( DialogInterface dialog , int item )
{
if (items[item] == "Facebook")
{
onFacebookClick();
}
if (items[item] == "Twitter")
{
onClickTwitt();
}
if (items[item] == "Email")
{
class LongOperation extends AsyncTask<String, Void, String> {
protected String doInBackground(String... params) {
Intent email = new Intent(Intent.ACTION_SEND);
email.setType("message/rfc822");
email.putExtra(Intent.EXTRA_EMAIL, new String[]
{
""
});
email.putExtra(Intent.EXTRA_SUBJECT, _Title);
email.putExtra(Intent.EXTRA_STREAM, Uri.parse(_Image));
startActivity(Intent.createChooser(email, "Choose an Email client :"));
return "Executed";
}
protected void onPostExecute(String result) {
}
protected void onPreExecute() {
}
protected void onProgressUpdate(Void... values) {
}
}
}
}
});
AlertDialog alert = builder.create();
alert.setCanceledOnTouchOutside(true);
alert.show();
}
});
}
I have to run the app and click email means i didn't get anything...If i ahve to click facebook means facebook login is opening.But click email means i didn't get email compose message and didn't getting any error ??? Why ??? what's wrong in my code ...