অ্যান্ড্রয়েড: অভিপ্রায় ব্যবহার করে সাধারণ পাঠ্য ভাগ করুন (সমস্ত বার্তাপ্রেরণ অ্যাপ্লিকেশনগুলিতে)


146

আমি একটি উদ্দেশ্য ব্যবহার করে কিছু পাঠ্য ভাগ করার চেষ্টা করছি:

Intent i = new Intent(android.content.Intent.ACTION_SEND);
i.setType("text/plain");  
i.putExtra(android.content.Intent.EXTRA_TEXT, "TEXT");

এবং চয়নকারীর সাথে ওয়ারপিং:

startActivity(Intent.createChooser(sms, getResources().getString(R.string.share_using)));

এটা কাজ করে! তবে কেবল ইমেল অ্যাপ্লিকেশনের জন্য।
আমার যা দরকার তা হ'ল সমস্ত বার্তাপ্রেরণ অ্যাপ্লিকেশনের সাধারণ অভিপ্রায়: ইমেল, এসএমএস, আইএম (হোয়াটসঅ্যাপ, ভাইবার, জিমেইল, এসএমএস ...) ব্যবহার করার চেষ্টা করে android.content.Intent.ACTION_VIEW এবং i.setType("vnd.android-dir/mms-sms");কোনও সাহায্যকারী ব্যবহার করার চেষ্টা করে ...

( "vnd.android-dir/mms-sms"কেবল এসএমএস ব্যবহার করে ভাগ করা হয়েছে!)

উত্তর:


313

কোডটি ব্যবহার করুন:

    /*Create an ACTION_SEND Intent*/
    Intent intent = new Intent(android.content.Intent.ACTION_SEND);
    /*This will be the actual content you wish you share.*/
    String shareBody = "Here is the share content body";
    /*The type of the content is text, obviously.*/
    intent.setType("text/plain");
    /*Applying information Subject and Body.*/
    intent.putExtra(android.content.Intent.EXTRA_SUBJECT, getString(R.string.share_subject));
    intent.putExtra(android.content.Intent.EXTRA_TEXT, shareBody);
    /*Fire!*/
    startActivity(Intent.createChooser(intent, getString(R.string.share_using)));

6
তবে বুঝতে পারলাম না কি পার্থক্য ?? শুধু বাইরের শরীরের স্ট্রিং ??
skgskg

1
এখানে কোন পার্থক্য নেই. এমুলেটরটিতে আমি মেসেজিং অ্যাপটি খোলার জন্য পেয়েছিলাম তবে আমার ফোন এবং ট্যাবলেটে আমাকে অ্যাপগুলির তালিকা থেকে বেছে নিতে বলা হয়েছিল। সম্ভবত এটি এমুলেটরটিতে সেই অতিরিক্ত অ্যাপগুলি ইনস্টল করার বিষয়ে about
পীযূষ-যেকোন পার্থক্য জিজ্ঞাসা করুন

দুর্দান্ত উত্তর! কেউ যদি বলতে পারেন যে আপনি sharingIntent.setType("text/plain");অংশ বাদ দিলে এটি কেন কাজ করে না ?
NecipAllef

কীভাবে কেবল হোয়াটসআপের জন্য আলাদা পাঠ্য সেট করতে হয়
সালিহ কল্লাই

1
ইন্টেন্ট শেয়ারিংইন্টেন্ট.সেটপ্যাকেজ ("com.whatsapp") এ নিম্নলিখিত স্নিপেট যুক্ত করুন;
অর্পিত গার্গ

62

এটি করার নতুন উপায়টি শেয়ারকম্প্যাট ব্যবহার করা হবে I

// Create and fire off our Intent in one fell swoop
ShareCompat.IntentBuilder
        // getActivity() or activity field if within Fragment
        .from(this) 
        // The text that will be shared
        .setText(textToShare)
        // most general text sharing MIME type
        .setType("text/plain") 
        .setStream(uriToContentThatMatchesTheArgumentOfSetType)
        /*
         * [OPTIONAL] Designate a URI to share. Your type that 
         * is set above will have to match the type of data
         * that your designating with this URI. Not sure
         * exactly what happens if you don't do that, but 
         * let's not find out.
         * 
         * For example, to share an image, you'd do the following:
         *     File imageFile = ...;
         *     Uri uriToImage = ...; // Convert the File to URI
         *     Intent shareImage = ShareCompat.IntentBuilder.from(activity)
         *       .setType("image/png")
         *       .setStream(uriToImage)
         *       .getIntent();
         */
        .setEmailTo(arrayOfStringEmailAddresses)
        .setEmailTo(singleStringEmailAddress)
        /*
         * [OPTIONAL] Designate the email recipients as an array
         * of Strings or a single String
         */ 
        .setEmailTo(arrayOfStringEmailAddresses)
        .setEmailTo(singleStringEmailAddress)
        /*
         * [OPTIONAL] Designate the email addresses that will be 
         * BCC'd on an email as an array of Strings or a single String
         */ 
        .addEmailBcc(arrayOfStringEmailAddresses)
        .addEmailBcc(singleStringEmailAddress)
        /* 
         * The title of the chooser that the system will show
         * to allow the user to select an app
         */
        .setChooserTitle(yourChooserTitle)
        .startChooser();

আপনার যদি শেয়ারকম্প্যাট ব্যবহার সম্পর্কে আরও কোনও প্রশ্ন থাকে তবে আমি এপিআইয়ের আরও সম্পূর্ণ বিচ্ছেদের জন্য গুগলের অ্যান্ড্রয়েড বিকাশকারী অ্যাডভোকেট ইয়ান লেকের কাছ থেকে এই দুর্দান্ত নিবন্ধটি সুপারিশ করছি । আপনি লক্ষ্য করবেন, আমি এই নিবন্ধটি থেকে এই উদাহরণটির কিছু ধার নিয়েছি।

যদি সেই নিবন্ধটি আপনার সমস্ত প্রশ্নের উত্তর না দেয় তবে অ্যান্ড্রয়েড বিকাশকারী ওয়েবসাইটের শেয়ারকোম্প্যাট.ইন্টেন্টবিল্ডারের পক্ষে সর্বদা জাভাদোক থাকে। ক্লিম্যান্তিয়ানোর মন্তব্যের ভিত্তিতে আমি এপিআই-র ব্যবহারের এই উদাহরণটিতে আরও যুক্ত করেছি


1
এই উত্তরের পাশাপাশি, ইমেল ঠিকানা প্রাপকদের যেমন, সেটইমেলবিসি () , সেট ইমেইলসিসি () এবং সেট ইমেইলটো () সেট করার জন্যও পদ্ধতি রয়েছে ।
ক্লিমেন্টিয়ানো

ভাগ করে নেওয়ার জন্য ধন্যবাদ তবে এটি আমার পক্ষে নিখুঁতভাবে কাজ করছে না, কখনও কখনও আমি এই ব্যতিক্রমটি java.lang.IllegalArgumentException: পরিষেবাটি নিবন্ধিত নেই: ActivityInfo {67f62c5 com.google.android.apps.hangouts. iPhone.ShareIntentActivity}
বেরিচ্যাকস

32

অ্যান্ড্রয়েডে ইন্টেন্টের সাথে ভাগ করা সম্পর্কে এটি দুর্দান্ত উদাহরণ:

* অ্যান্ড্রয়েডে ইন্টেন্টের সাথে ভাগ করুন

//Share text:

Intent intent2 = new Intent(); intent2.setAction(Intent.ACTION_SEND);
intent2.setType("text/plain");
intent2.putExtra(Intent.EXTRA_TEXT, "Your text here" );  
startActivity(Intent.createChooser(intent2, "Share via"));

//via Email:

Intent intent2 = new Intent();
intent2.setAction(Intent.ACTION_SEND);
intent2.setType("message/rfc822");
intent2.putExtra(Intent.EXTRA_EMAIL, new String[]{EMAIL1, EMAIL2});
intent2.putExtra(Intent.EXTRA_SUBJECT, "Email Subject");
intent2.putExtra(Intent.EXTRA_TEXT, "Your text here" );  
startActivity(intent2);

//Share Files:

//Image:

boolean isPNG = (path.toLowerCase().endsWith(".png")) ? true : false;

Intent i = new Intent(Intent.ACTION_SEND);
//Set type of file
if(isPNG)
{
    i.setType("image/png");//With png image file or set "image/*" type
}
else
{
    i.setType("image/jpeg");
}

Uri imgUri = Uri.fromFile(new File(path));//Absolute Path of image
i.putExtra(Intent.EXTRA_STREAM, imgUri);//Uri of image
startActivity(Intent.createChooser(i, "Share via"));
break;

//APK:

File f = new File(path1);
if(f.exists())
{

   Intent intent2 = new Intent();
   intent2.setAction(Intent.ACTION_SEND);
   intent2.setType("application/vnd.android.package-archive");//APk file type  
   intent2.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(f) );  
   startActivity(Intent.createChooser(intent2, "Share via"));
}
break;

9

পদ্ধতির নীচে ব্যবহার করুন, কেবল বিষয়টির আর্গুমেন্ট হিসাবে বিষয় এবং শরীরকে পাস করুন

public static void shareText(String subject,String body) {
    Intent txtIntent = new Intent(android.content.Intent.ACTION_SEND);
    txtIntent .setType("text/plain");
    txtIntent .putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
    txtIntent .putExtra(android.content.Intent.EXTRA_TEXT, body);
    startActivity(Intent.createChooser(txtIntent ,"Share"));
}

4

নীচে কোডটি যা ইমেল বা বার্তা অ্যাপ্লিকেশন উভয়ের সাথে কাজ করে। আপনি যদি ইমেলের মাধ্যমে ভাগ করেন তবে বিষয় এবং শরীর উভয়ই যুক্ত হয়।

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
                sharingIntent.setType("text/plain");

                String shareString = Html.fromHtml("Medicine Name:" + medicine_name +
                        "<p>Store Name:" + store_name “+ "</p>" +
                        "<p>Store Address:" + store_address + "</p>")  .toString();
                                      sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Medicine Enquiry");
                sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, shareString);

                if (sharingIntent.resolveActivity(context.getPackageManager()) != null)
                    context.startActivity(Intent.createChooser(sharingIntent, "Share using"));
                else {
                    Toast.makeText(context, "No app found on your phone which can perform this action", Toast.LENGTH_SHORT).show();
                }

1

চিত্র বা বাইনারি ডেটা:

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("image/jpg");
Uri uri = Uri.fromFile(new File(getFilesDir(), "foo.jpg"));
sharingIntent.putExtra(Intent.EXTRA_STREAM, uri.toString());
startActivity(Intent.createChooser(sharingIntent, "Share image using"));

বা এইচটিএমএল:

Intent sharingIntent = new Intent(Intent.ACTION_SEND);
sharingIntent.setType("text/html");
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, Html.fromHtml("<p>This is the text shared.</p>"));
startActivity(Intent.createChooser(sharingIntent,"Share using"));

0

এই কোডটি এসএমএসের মাধ্যমে ভাগ করার জন্য

     String smsBody="Sms Body";
     Intent sendIntent = new Intent(Intent.ACTION_VIEW);
     sendIntent.putExtra("sms_body", smsBody);
     sendIntent.setType("vnd.android-dir/mms-sms");
     startActivity(sendIntent);

0

জিমেইল শেয়ারের জন্য 100% কার্যকারী কোড

    Intent intent = new Intent (Intent.ACTION_SEND);
    intent.setType("message/rfc822");
    intent.putExtra(Intent.EXTRA_EMAIL, new String[]{"anyMail@gmail.com"});
    intent.putExtra(Intent.EXTRA_SUBJECT, "Any subject if you want");
    intent.setPackage("com.google.android.gm");
    if (intent.resolveActivity(getPackageManager())!=null)
        startActivity(intent);
    else
        Toast.makeText(this,"Gmail App is not installed",Toast.LENGTH_SHORT).show();
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.