このコードを使用して、インテント経由でメール チューザーを開きます
val mIntent = Intent(
Intent.ACTION_SENDTO, Uri.fromParts(
"mailto",
"name@email.com", null
)
)
mIntent.putExtra(Intent.EXTRA_SUBJECT, "[Feedback - App Name]")
mIntent.putExtra(Intent.EXTRA_TEXT, "")
try {
startActivity(Intent.createChooser(mIntent, "Choose Email Client..."))
} catch (e: Exception) {
(activity as MainActivity).showToast("There are no email clients installed.")
}
期待どおりに動作しますが、メール クライアントのリストに PayPal アプリも含まれています。
PayPal をクリックすると、メールが PayPal に登録されている場合、支払いページにリダイレクトされます。登録されていない場合は、以下の画面が表示されます。
どちらのシナリオでも、PayPal アプリからメールを送信するオプションはありません。
では、インテント チューザーにメール クライアントのみを含めるにはどうすればよいでしょうか。
私もこのコードを試しましたが、結果も同じです。
val intent = Intent(Intent.ACTION_SENDTO)
intent.data = Uri.parse("mailto:")
intent.putExtra(Intent.EXTRA_EMAIL, "addresses")
intent.putExtra(Intent.EXTRA_SUBJECT, "subject")
if (intent.resolveActivity(activity?.getPackageManager()!!) != null) {
startActivity(Intent.createChooser(intent, "Choose Email Client..."))
}
編集 :
同じダイアログが開いている他のアプリをチェックインしました。PayPal アプリがメール イベントをリッスンしている可能性があります。