1

iOS の世界では、Open Protocol を使用してアプリケーション間でデータを交換できます。たとえば、PDF が添付された電子メールがある場合、アプリがサンドボックス上で実行され、共有ファイル システムがない場合でも、PDFExpert で開くことができます。

Android の場合、このような手順が異なることに気付きました。たとえば、/mnt/Apps_Name などのファイル システムにドキュメントを保存し、そのドキュメントを他のアプリで再度開くことができます。

iOS の世界のように、アプリ間でデータやドキュメントを交換する体験をユーザーに提供する方法はありますか? 例はありますか?公式ドキュメントへの参照はありますか?Bonjour または Zero Conf の実装が必要ですか?

4

2 に答える 2

2

たぶん、インテントアプローチはあなたが探しているものです。アクションをインテントに設定することで、たとえばACTION_VIEWとすると、インテントに対応するデータ(つまり、pdfファイル)を設定すると、システムはどのアプリがその情報を表示できるかを判断します。複数のアプリが対応している場合、通常、ダイアログはユーザーにアプリを決定させるように促します。

PDFの例を見る:

Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
startActivity(intent);

インテント機能は、Android開発で私のお気に入りの1つです。たとえば、Oauth / Oauth2 ...を実装する手間をかけずに、ファイル/テキスト/イメージ/...を共有するのがいかに簡単かをご覧ください。

Intent intent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("text/plain");
String toShare = "This is the text to share";
// You can add extras
intent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject Here");

// Start intent with choose prompt
startActivity(Intent.createChooser(intent, "Share via"));

結果:

ここに画像の説明を入力してください

于 2012-07-31T08:28:38.273 に答える
1

Android 4.1 adds Network Service Discovery which should be exactly what you want — seems to actually be implemented on top of Bonjour under the hood.

于 2012-10-30T20:25:01.540 に答える