如何打开 whats app 和 gmail 的选择器意图仅在 kotlin 中发送附件文档
How to open chooser intent of whats app and gmail only to send an attachment document in kotlin
我只需要将我的应用程序创建的文档发送到 gmail 和 whatsapp。
我得到了 whatsapp 的工作代码,
val filelocation = GlobalVariables.getMyFilePath(this, "dummy_file.mem")
val uri = Uri.parse(filelocation.absolutePath)
val whatsappIntent = Intent(Intent.ACTION_SEND)
whatsappIntent.type = "text/plain"
whatsappIntent.setPackage("com.whatsapp")
whatsappIntent.putExtra(Intent.EXTRA_TEXT, "members file list")
whatsappIntent.putExtra(Intent.EXTRA_STREAM, uri)
whatsappIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
this.startActivity(whatsappIntent)
基于此,我对 gmail 进行了同样的操作。但没有得到附加。它吐司留言 file not attached
val email = Intent(Intent.ACTION_SEND)
email.setPackage("com.google.android.gm")
email.putExtra(Intent.EXTRA_EMAIL, arrayOf<String>("vikas16acharya@gmail.com"))
email.putExtra(Intent.EXTRA_SUBJECT, "members file list")
email.putExtra(Intent.EXTRA_TEXT, message)
email.putExtra(Intent.EXTRA_STREAM, uri)
email.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
email.type = "message/rfc822"
this.startActivity(email)
- 如何发送附件到gmail
- 如何在选择器意图操作中仅显示
whatsapp
和 gmail
如何发送附件到gmail?
要发送文件,您还需要一些东西,
首先在 Manifest
->application
添加以下代码段
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_provider_paths" />
</provider>
然后在res
下创建一个文件夹xml
并添加这个文件
file_provider_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-files-path name="external_files" path="."/>
</paths>
</PreferenceScreen>
然后在您的代码中添加下面一行而不是 val uri = Uri.parse(filelocation.absolutePath)
val uri = FileProvider.getUriForFile(this, "${BuildConfig.APPLICATION_ID}.provider", filelocation)
现在您可以发送附件了。
如何在选择器意图操作中仅显示 whatsapp 和 gmail?
参考这个link
我只需要将我的应用程序创建的文档发送到 gmail 和 whatsapp。
我得到了 whatsapp 的工作代码,
val filelocation = GlobalVariables.getMyFilePath(this, "dummy_file.mem")
val uri = Uri.parse(filelocation.absolutePath)
val whatsappIntent = Intent(Intent.ACTION_SEND)
whatsappIntent.type = "text/plain"
whatsappIntent.setPackage("com.whatsapp")
whatsappIntent.putExtra(Intent.EXTRA_TEXT, "members file list")
whatsappIntent.putExtra(Intent.EXTRA_STREAM, uri)
whatsappIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
this.startActivity(whatsappIntent)
基于此,我对 gmail 进行了同样的操作。但没有得到附加。它吐司留言 file not attached
val email = Intent(Intent.ACTION_SEND)
email.setPackage("com.google.android.gm")
email.putExtra(Intent.EXTRA_EMAIL, arrayOf<String>("vikas16acharya@gmail.com"))
email.putExtra(Intent.EXTRA_SUBJECT, "members file list")
email.putExtra(Intent.EXTRA_TEXT, message)
email.putExtra(Intent.EXTRA_STREAM, uri)
email.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
email.type = "message/rfc822"
this.startActivity(email)
- 如何发送附件到gmail
- 如何在选择器意图操作中仅显示
whatsapp
和gmail
如何发送附件到gmail?
要发送文件,您还需要一些东西,
首先在 Manifest
->application
添加以下代码段
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.provider"
android:grantUriPermissions="true"
android:exported="false">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_provider_paths" />
</provider>
然后在res
下创建一个文件夹xml
并添加这个文件
file_provider_paths.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<paths xmlns:android="http://schemas.android.com/apk/res/android">
<external-files-path name="external_files" path="."/>
</paths>
</PreferenceScreen>
然后在您的代码中添加下面一行而不是 val uri = Uri.parse(filelocation.absolutePath)
val uri = FileProvider.getUriForFile(this, "${BuildConfig.APPLICATION_ID}.provider", filelocation)
现在您可以发送附件了。
如何在选择器意图操作中仅显示 whatsapp 和 gmail?
参考这个link