Android Beam と同様の機能を持つアプリケーションを作成したいのですが、問題はそれらの実行中のアプリケーションのコンテンツを取得する方法です。たとえば、Web ブラウザー、Youtube、Google マップが実行されている場合、Web アドレス、ビデオ リンク、および場所を取得するにはどうすればよいですか? ありがとうございました。
3 に答える
このような情報を取得できるのは、実行中のアプリケーションが何らかのグローバル アクセス方法 (サービスやコンテンツ プロバイダーなど) を介して提供する場合のみです。セキュリティ/プライバシーに重大な影響があるため、アプリケーションがこれを行う可能性はほとんどありません。
このようなアプリケーションを開発するには、システム アプリケーションを作成する必要があります。つまり、ルート権限が必要になります。
私の意見では、Android Beam のソース コードを調べて、そこでどのように処理されているかを確認するのが最善の方法です。公式 API はここでは役に立ちません。このようなシステムアプリで使用する機能は API にないため、今後のバージョンの Android での動作を保証するものではありませんので、ご注意ください。
これが簡単な作業になるとは思えません。本当に Android Beam に似ている場合は、公式ソースの上にコードをビルドしてみてください。
Android ビームの場合、アプリ自体がデータを共有しています。NFC バックグラウンド サービスは、アプリのアクティビティによって配信される Android ビームを介して共有されるデータを取得します。アクティビティは、最初に (たとえば で) NfcAdapter.setNdefPushMessage()onResume()
メソッドを呼び出して静的なデータを共有するか、NfcAdapter.setNdefPushMessageCallback()を呼び出してその時点で共有されるデータを作成するコールバックを登録します Android ビームアクティブになります。
Android 4.0 ICS では、ブラウザ、Gmail、マップ、People、Youtube など、標準の Android および Google アプリの多くが拡張され、これをサポートしています。これをサポートしていないアプリは、デフォルトで、Google Play ストアでそのアプリのダウンロード ページへのリンクを共有します。