はじめに
androidアプリ内でSNSに画像やURLなどをシェアする方法を学んだので、今後のために記事にしてやり方を残しておこうと思います。
端末のシェア機能
val shareIntent: Intent = Intent().apply {
action = Intent.ACTION_SEND
putExtra(Intent.EXTRA_TEXT, text)
type = "text/plain"
}
startActivity(Intent.createChooser(shareIntent, ""))
val text = URLEncoder.encode("投稿したいテキスト", "UTF-8");
val uri = Uri.parse("twitter://post?message=$text")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
テキストに "$hashTag"を加えると ハッシュタグをつけることもできる
LINE
val text = URLEncoder.encode("投稿したいテキスト", "UTF-8");
val uri = Uri.parse("https://line.me/R/share?text=$text")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
startActivity(Intent("com.instagram.share.ADD_TO_STORY").apply {
this.setDataAndType(投稿したい画像のURI, "image/*")
this.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
this.setPackage("com.instagram.android")
})
val uri = Uri.parse("https://www.facebook.com/sharer/sharer.php?u=<URL>")
val intent = Intent(Intent.ACTION_VIEW, uri)
startActivity(intent)
それぞれ端末内のアプリを開きたい場合
val uri = Uri.parse(getString(各アプリのURL))
CustomTabsIntent.Builder().also { builder ->
builder.setShowTitle(true)
builder.build().also {
it.launchUrl(requireContext(), uri)
}
}
参考