アンドロイドの共有機能はどのように動作しますか
システムで提供される共有機能を使ってAndroid共有機能を実現する。
- レイアウトファイルに共有ボタンを追加するなど、共有ボタンまたはメニュー項目を作成します。
- アクティビティまたはフラグメントで、共有ボタンのクリックイベントリスナーを登録します。
- クリックイベントリスナーで、Intentオブジェクトを作成し、IntentのアクションをAction_SENDに設定します。
- インテントにデータをセットする場合、データのMIMEタイプを指定する必要があり、テキストの場合は “text/plain”、画像の場合は “image/*” といった値を設定します。
- インテントの`putExtra()`メソッドを使って、共有するデータをインテントに追加できます。例えば、テキストコンテンツの場合`Intent.EXTRA_TEXT`、画像のURIの場合`Intent.EXTRA_STREAM`を使用します。
- startActivity()メソッドを呼び出して共有先のアプリピッカーを起動する。ピッカーはIntent.createChooser()メソッドを使って作成できる。
例のコードを示す:
// 监听分享按钮的点击事件
shareButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 创建一个分享的Intent
Intent shareIntent = new Intent(Intent.ACTION_SEND);
// 设置分享的数据类型
shareIntent.setType("text/plain");
// 设置分享的文本内容
shareIntent.putExtra(Intent.EXTRA_TEXT, "要分享的文本内容");
// 启动分享的目标应用程序选择器
startActivity(Intent.createChooser(shareIntent, "分享到"));
}
});
共有テキストを共有する方法のサンプルコードです。画像共有の場合は共有データの種類を「image/*」にして、画像のUriをIntent.EXTRA_STREAMに追加してください。
共有可能な機能は、共有をサポートするアプリがデバイスにインストールされていることに依存するため、共有機能の利用可否はデバイスにより異なることに注意してください。共有機能の利用可否を確実にしたい場合は、共有可能なアプリの有無を調べるにPackageManagerのqueryIntentActivities()メソッドを使用できます。