AndroidはシステムIntentを使用して共有機能を実現し、アプリケーションを共有リストに追加する

1927 ワード

と書く
Androidシステムでどのようにアプリケーションに共有機能を追加し、どのようにアプリケーションをシステムの共有選択リストに追加しますか?Intent.createChooser()メソッドは、システム共有リストをポップアップするために使用されます.
ただし、Intent対応のコンポーネントが存在するかどうかを確認し、AndroidがIntentが存在するかどうかを判断し、利用可能かどうかを確認し、AndroidシステムがIntentを呼び出すと、Intentが一致するActivityコンポーネント(Component)が見つからない場合、アプリケーションは以下のエラーを報告する.content.ActivityNotFoundException: Unable to find explicit activity class.
だから使用する前に判断しなければなりません.コードは以下の通りです.
 
public static boolean intentIsAvailable(Context context, Intent intent) {
          final PackageManager packageManager = context.getPackageManager();
          List<ResolveInfo> list = packageManager.queryIntentActivities(intent,
                                                       PackageManager.GET_ACTIVITIES);
          return list.size() > 0;
}

 
 
1、応用は共有機能を増加する
//    ,            setType “image/*”,       Uri   Intent.EXTRA_STREAM。

public static void shareText(Context context, String title, String text) {
    Intent intent = new Intent(Intent.ACTION_SEND);
    intent.setType("text/plain");
    intent.putExtra(Intent.EXTRA_SUBJECT, title);
    intent.putExtra(Intent.EXTRA_TEXT, text);
    context.startActivity(Intent.createChooser(intent, title));
}
 
 
2、アプリケーション加入システム共有リスト
 
   AndroidManifest.xml       :

<activity android:name=".ShareActivity" android:label="     ">
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="image/*" />
    </intent-filter>
</activity>