AndroidはシステムIntentを使用して共有機能を実現し、アプリケーションを共有リストに追加する
1927 ワード
と書く
Androidシステムでどのようにアプリケーションに共有機能を追加し、どのようにアプリケーションをシステムの共有選択リストに追加しますか?Intent.createChooser()メソッドは、システム共有リストをポップアップするために使用されます.
ただし、Intent対応のコンポーネントが存在するかどうかを確認し、AndroidがIntentが存在するかどうかを判断し、利用可能かどうかを確認し、AndroidシステムがIntentを呼び出すと、Intentが一致するActivityコンポーネント(Component)が見つからない場合、アプリケーションは以下のエラーを報告する.content.ActivityNotFoundException: Unable to find explicit activity class.
だから使用する前に判断しなければなりません.コードは以下の通りです.
1、応用は共有機能を増加する
2、アプリケーション加入システム共有リスト
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>