كيف يمكنني إنشاء نية لإطلاق أي تطبيق بريد إلكتروني؟

StackOverflow https://stackoverflow.com/questions/3147543

  •  01-10-2019
  •  | 
  •  

سؤال

لقد وجدت مواضيع مختلفة هنا وفي أي مكان آخر على إنشاء نية لإرسال بريد إلكتروني ويبدو أن هذا واضح ومباشر. أنا أبحث عن نية لإطلاق أي عميل بريد إلكتروني قد يكون لدى المستخدم.

إليك الرمز الذي رأيته لإرسال بريد إلكتروني (تم نشره فقط للرجوع إليه ، هذا لا يخدم احتياجاتي لأنني لا أرغب في إرسال رسالة جديدة):

Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"}); 
i.putExtra(Intent.EXTRA_SUBJECT, "Subject of the message"); 
i.putExtra(Intent.EXTRA_TEXT   , "Body of the message"); 

فيما يلي الرمز الذي وضعته معًا لإطلاق عميل Gmail على وجه التحديد بواسطة اسم الحزمة:

PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("com.google.android.gm");
startActivity(intent);

يعمل الرمز أعلاه ولكنه غير مرن في أن المستخدم قد لا يستخدم Gmail ولكن تطبيق البريد الإلكتروني المدمج الآخر أو تطبيق البريد الإلكتروني من طرف ثالث. أنا أبحث عن نية من شأنها أن تطرح المختار في هذه الحالة حتى يتمكن المستخدم من تحديد التطبيق الذي سيتم إطلاقه لقراءة البريد الإلكتروني.

هل يعرف أحد كيف ينجز هذا؟

هل كانت مفيدة؟

المحلول

هل يعرف أحد كيف ينجز هذا؟

لايوجد مثيل Intent - يمكنك معرفة ذلك عن طريق فحص البيان لتطبيق البريد الإلكتروني.

الشيء الوحيد الذي يمكنك القيام به هو بناء قائمة من عملاء البريد الإلكتروني الذين ترغب في الارتباط به واستخدامه PackageManager الرمز الذي تظهره أعلاه لكل منهما.

نصائح أخرى

هل يمكن استخدام عنوان URL Mailto بطريقة ما لإنجاز هذا؟ -edit-تمكنت من تحقيق ذلك باستخدام عينة الكود التالية:

mt = MailTo.parse("mailto:yourname@gmail.com");
sendIntent = new Intent(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{mt.getTo()});
sendIntent.putExtra(Intent.EXTRA_TEXT, "");
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Enter a subject");
sendIntent.setType("message/rfc822");
startActivity(Intent.createChooser(sendIntent, "Send a Message:"));

نهج آخر يمكن أن يكون القصد. createchooser () ؛ والسماح للمستخدم باختيار التطبيق الصحيح.

راجع للشغل يمكن أن تحتوي القائمة على تطبيقات البريد الإلكتروني فقط

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top