【Kotlin/Android】Intent.ACTION_SENDで共有機能の実装方法!他アプリへデータ渡し

この記事からわかること

  • Android Studio/KotlinIntentクラス実装方法
  • Intent.ACTION_SEND使い方
  • 他アプリデータ渡す方法

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

Intentクラスとは?

AndroidのIntentクラスとは異なるコンポーネント間(ActivityやServiceなど)でActivity間の移動やデータの受け渡し、アクションの実行(地図の表示、写真を撮るなど)、ブロードキャストメッセージの送信などを可能にする役割を持つメッセージングオブジェクトです。

このIntentを使用することで他アプリへデータ(テキストや画像、動画、PDF、JSON、)を共有することが可能になります。

他アプリへデータを共有する

他アプリへデータを共有するためにはIntentIntent.ACTION_SENDを指定します。渡すデータタイプtypeに指定し、putExtraメソッドで共有したいデータを指定します。例えばテキストを共有したい場合は以下のようになります。

val intent = Intent().apply {
    action = Intent.ACTION_SEND
    type = "text/plain"
    putExtra(Intent.EXTRA_TEXT, "共有したいテキスト")
}
// 指定されたIntentを処理できるアクティビティが存在するかどうかを確認
if (intent.resolveActivity(requireContext().packageManager) != null) {
    startActivity(intent)
}
【Kotlin/Android】Intent.ACTION_SENDで共有機能の実装方法!他アプリへデータ渡し

createChooserを使用する

createChooserを使用すると共有するテキストも表示されるようになります。

val intent = Intent().apply {
    action = Intent.ACTION_SEND
    type = "text/plain"
    putExtra(Intent.EXTRA_TEXT, "共有したいテキスト")
}
if (intent.resolveActivity(requireContext().packageManager) != null) {
    startActivity(
        Intent.createChooser(
            intent,
            null
        )
    )
}
【Kotlin/Android】Intent.ACTION_SENDで共有機能の実装方法!他アプリへデータ渡し

画像の場合

画像の場合はimage/拡張子形式でtypeを指定します。

val sendIntent = Intent().apply {
    action = Intent.ACTION_SEND
    putExtra(Intent.EXTRA_STREAM, imageUri)
    type = "image/png" // 画像の種類を指定
}

if (intent.resolveActivity(requireContext().packageManager) != null) {
    startActivity(
        Intent.createChooser(
            intent,
            null
        )
    )
}

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index