2

APK ごとに同じサービスと同じアクションを持つ 2 つのインストール済み APK があるとします。使用されている種類やライブラリなど。

サービスの観点からは、最後にインストールされた APK が実際に機能することを理解しています。

アクションに言及しているサービスに APK がバインドされている場合、バインドするサーバーを実際に指定することはできません。それともできますか?

これは重要です。II には、これらの APK の構築に使用される同じライブラリの 2 つの異なるバージョンがあります。特定の APK からの私のコードは、サービスが特定の考慮事項で構築されていることを期待する場合があります。

厳密に言えば、複数のサービスが同じ名前、パッケージ名 (実際のパッケージ名とは異なる)、およびアクションを持っている場合に、特定のサービスにバインドする方法を知る必要があります。

読んでいて辛くてすみません…。

4

1 に答える 1

1

これは今のところ変更できません。

才能のあるプログラマーは、これを 1、2 分で変更できます。

サービスの観点からは、最後にインストールされた APK が実際に機能することを理解しています。

実際、私の知る限り、最後の勝利ではなく、最初の勝利です。

複数の名前、パッケージ名 (実際のパッケージ名とは異なります)、およびアクションが同じである場合。

同じパッケージ名で同時に 2 つのアプリをインストールすることはできないため、これは不可能です。

2 つのアプリを異なるパッケージ名でインストールすること可能ですが、Serviceそれらには同じ完全修飾クラス名を持つが含まれ<intent-filter>、同じアクション文字列を共有する でエクスポートされます。質問に対するコメントで指摘したように、これは設計が不十分です。

そうは言っても、setComponent()on the Intentused withstartService()などを使用してService、問題の を識別することができます。2 つのStringコンストラクターを使用して、最初のパラメーターで APK のパッケージ名を指定Serviceし、2 番目のパラメーターで APK の完全修飾クラス名を指定する必要があります。

于 2012-12-09T14:53:16.307 に答える