【发布时间】:2021-06-30 11:08:03
【问题描述】:
主活动
val isActivityLaunchedFromActionSend = intent?.action == Intent.ACTION_SEND
val isActivityLaunchedFromActionSendMultiple = intent?.action == Intent.ACTION_SEND_MULTIPLE
val isTextData = intent.type?.startsWith("text/") == true
val isImageData = intent.type?.startsWith("image/") == true
if (isActivityLaunchedFromActionSend && isTextData) {
// Session 1: Handle received text data
val sentString = intent.getStringExtra(Intent.EXTRA_TEXT)
//Sending data to fragment so we can set the value in edittext.
val bundle = Bundle()
bundle.putString("message", sentString)
val fragInfo = HomeFragment()
fragInfo.setArguments(bundle)
} else if (isActivityLaunchedFromActionSend && isImageData) {
// Session 2: Handle received image data
val sentImageURI = intent.getParcelableExtra<Parcelable>(Intent.EXTRA_STREAM) as? Uri
} else if (isActivityLaunchedFromActionSendMultiple && isImageData) {
val imageURIList = intent.getParcelableArrayListExtra<Parcelable>(Intent.EXTRA_STREAM) ?: arrayListOf()
}
首页片段
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
val myValue =requireArguments().getString("message")
etUrl.setText(myValue)
这里 myValue 中的值将变为 null。而在 HomeFragment 中有一个 editText 所以当用户向我的应用发送链接时,该链接将自动在 EditText 中过去。
清单
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
那么你能告诉我我缺少什么吗?
【问题讨论】:
标签: android android-intent intentfilter android-jetpack-navigation