2017-08-01 14 views
1

AndroidManifestで "exported = true"を設定すると、特定のアクティビティを他のアプリケーションから起動することができます。これにより、他のアプリケーションがエクスポートされたアクティビティ内のパブリックメソッドのANYを手動で呼び出すこともできますか?もしそうなら、そのコードはどのように見えるでしょうか?Androidでアクティビティをエクスポートすると、他のアプリケーションもそのアクティビティからパブリックメソッドを呼び出せますか?

答えて

1

してくださいは、慎重に公式documentationを読む: - いない場合はそれができるならばtrue、およびfalse

をこの要素は、アクティビティは、コンポーネント、他のアプリケーションの によって起動できるかどうかを設定します。 falseの場合、同じユーザーIDを持つ同じ のアプリケーションまたはアプリケーションのコンポーネントによってのみアクティビティーを起動できます。 インテントフィルタを使用している場合は、この要素を設定しないでください。falseそうした場合、 とアプリがアクティビティを呼び出そうとすると、システムは ActivityNotFoundExceptionを投げます。代わりに、 の他のアプリがインテントフィルタを設定しないことでアクティビティを呼び出さないようにする必要があります。

インテントフィルタがない場合、この要素のデフォルト値は です。これはfalseです。要素trueを設定すると、アクティビティは正確なクラス名を知っているすべてのアプリケーションに対して にアクセスできますが、 システムが暗黙のインテントと一致しようとすると解決されません。

この属性は、アクティビティが他のアプリケーション にさらされるのを制限する唯一の方法ではありません。また、アクティビティを呼び出すことができる外部エンティティ( 属性を参照)を制限するアクセス許可を に制限することもできます。

関連する問題