Reputation: 452
I'm using package manager for sending intent to what I wanna deliver. So I followed some examples. But when I run this, many packages are excluded. I have to know all packages but it didn't. how to get all package?
private fun getImageShareIntent(name: String,data: Uri): Intent? {
var found = false
val intent = Intent(Intent.ACTION_SEND)
intent.type = "image/*"
intent.data = MediaStore.Images.Media.EXTERNAL_CONTENT_URI
val resInfos = packageManager.queryIntentActivities(intent, 0)
if (resInfos == null || resInfos.size === 0) return null
for (info in resInfos) {
Log.d("TAG","info.activityInfo.packageName : "+info.activityInfo.packageName)
if (info.activityInfo.packageName.contains(name)) {
// Log.d("TAG","info.activityInfo.packageName : "+info.activityInfo.packageName)
intent.run {
putExtra(Intent.EXTRA_STREAM,data )
setPackage(info.activityInfo.packageName)
}
found = true
break
}
}
Log.d("TAG","//////////////////////////////")
return if (found) intent else null
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
when(requestCode){
1000-> {
if (resultCode == -1) {
targetedShareIntents.clear()
for (i: Int in 0 until targetList.size) {
getImageShareIntent(targetList.get(i), data?.data!!)?.let {
targetedShareIntents.add(it);
}
}
val shareIntent = Intent.createChooser(targetedShareIntents.removeAt(0), "Title")
shareIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toTypedArray<Parcelable>())
startActivity(shareIntent)
}
}
}
}
Log
//////////////////////////////
D/TAG: info.activityInfo.packageName : com.samsung.android.app.simplesharing
info.activityInfo.packageName : com.google.android.apps.docs
info.activityInfo.packageName : com.microsoft.skydrive
info.activityInfo.packageName : com.samsung.android.email.provider
D/TAG: info.activityInfo.packageName : com.samsung.android.oneconnect
info.activityInfo.packageName : com.skt.tbagplus
info.activityInfo.packageName : jp.naver.line.android
info.activityInfo.packageName : jp.naver.line.android
//////////////////////////////
Upvotes: 0
Views: 21
Reputation: 1007534
Delete:
intent.data = MediaStore.Images.Media.EXTERNAL_CONTENT_URI
ACTION_SEND
does not use the data
facet of an Intent
.
Upvotes: 1