問題タブ [aidl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
189 参照

android - バインドされた両方のサービスでリモート サービス メソッドにアクセスする

サービス A と B の 2 つのサービスがあります。サービス A でサービス B のいくつかのメソッドにアクセスする場合は、ServiceConnection クラスを作成する必要があり、サービス A 内でスタブを作成してメソッドを実装する必要があります。

しかし、サービス B からサービス A のメソッドにもアクセスしたいと思います。試しに、aidl 接続をもう 1 つ作成し、ServiceConnection を実装しましたが、これが正常に動作する唯一の方法ですか、それとも既存のサービス接続を使用してこの機能を別の方法で実装できますか?

0 投票する
1 に答える
647 参照

android - AndroidでIPCを介してカーソルを渡すことは可能ですか?

IPC を介して Cursor オブジェクトを渡すことが可能かどうか、またそれを行う方法が可能かどうかを知りたいです。

0 投票する
4 に答える
5254 参照

java - 内部クラスを Parcelable にする方法

その型のオブジェクトを AIDL 経由でリモート サービスに渡すことができるように、内部クラスを Parcelable にする方法を知る必要があります。これに関する情報が見つかりません。

これは私が達成しようとしているコードの例ですが、Bar クラスの CREATOR を静的にできないため (つまり、内部クラスにあるため)、コンパイルされません。Bar を静的内部クラスにすることはできず、Bar を Foo クラスの外 (システム内の他の依存関係) に移動することもできません。また、AIDL ファイル内から Bar クラスを参照する方法も知っておく必要があります。どんな助けでも大歓迎です。

0 投票する
1 に答える
1632 参照

android - .aidlファイルのoutパラメータのみを使用することの難しさ

Androidサービスで変更をアクティビティに返送できるようにしようとしています。サービスが開始されると、アクティビティからは何も送信されないため、パラメータを使用しようとしています。

これが私の.aidlファイルです:

サービスからデータを渡す方法に固執しているので、データはアクティビティに送信されます。

したがって、これは私のサービスにありますが、mCallbackには、アクティビティに送り返されるパラメータを渡すことができるものはありません。

だから、mCallback.dataChanged()どこに戻るのかわからないnew double[] { 1.0, 1.1};

アクティビティ側では、渡されたパラメータがサービスから必要なデータであると想定しているため、私がやろうとしていることはです。

onewayすべての通信がサービスからアクティビティに流れるため、このキーワードも使用しています。

0 投票する
1 に答える
2622 参照

android - ライブラリプロジェクト全体で.aidlファイルを使用できませんか?

コードを再利用するという精神で、私はいくつかのライブラリプロジェクトを作成しようとしています。ただし、ライブラリにまたがる.aidlファイルの定義で問題が発生したようです。ここに問題があります:

ライブラリAIにはFoo.javaとFoo.aidlがあります。Foo.javaはParcelableであるため、aidl宣言は次のようになります。

今、私はライブラリBを作成しようとしています。ライブラリBIで、クラスFooを使用するサービスインターフェイスを定義したいと思います。

このファイルは、Fooのインポートが見つからなかったことを訴えてコンパイルされません。ライブラリAを参照し、ライブラリプロジェクトを外部jarとして追加しようとしましたが、どちらも機能しません。

わからない制限はありますか?プロジェクトの設定で何か問題がありますか?

私はプロジェクトでライブラリAを直接問題なく使用したので、ライブラリAは問題ではないと確信しています。

0 投票する
1 に答える
2088 参照

android - AIDL ファイルでクラス android.database.Cursor のインポートが見つかりませんでした

バックグラウンドで曲を再生するサービスを作成しました。サービスで曲を変更した場合、サービスからDataBase Cursorが必要です。

現在の曲のカーソルを返すサービスに関数があります。

問題は AIDL インターフェイスにあります。AIDL インターフェイスで関数を宣言すると、次のエラーが表示されます。

aidl ファイルの内容は次のとおりです。

これは、AIDL ファイルで非プリミティブ データ型を使用する正しい方法ですか?

0 投票する
2 に答える
1838 参照

android - Android AIDL NoClassDefFoundError

私はAIDLに取り組んでいます。私の.aidlファイルは別のプロジェクト(別のアプリケーション)にあります。aidlファイル名がIService.aidlであるとします。しかし、1を割り当てているときに、onServiceConnected(ComponentName componentName、IBinder iBinder)メソッドでこのエラー(以下に表示)

IService service = IService.Stub.asInterface((IBinder)iBinder);

が発生します。何が問題になる可能性がありますか?
2.別のプロジェクトのIService(aidl)にアクセスする方法もありますか?

0 投票する
1 に答える
2805 参照

android - ContentProvider と AIDL/Messenger の使用

プラグインをサポートし、これらのプラグインにデータを提供するアプリケーションを開発したいと考えています。このプラグイン アーキテクチャを Android に実装する正しい方法は、メイン アプリ用に 1 つの apk と、プラグインごとに 1 つの apk になるようです。

しかし、メインアプリとすべてのプラグインが異なるapkにあるため、(データ)オブジェクトを一方から他方に簡単に渡すことができず、アプリケーションは異なるプロセスで実行され、たとえ1つのプロセスで実行されたとしても(これは達成可能です)、異なるクラスローダーがあり、これは機能しません。現在、メイン アプリからプラグインにデータを取得するための有望な方法が 2 つあります。

  1. メインアプリを として宣言しContentProviderます。これは、コンテンツ/データを別のプロセスに提供するという、私が達成したいことを正確に行うため、意図したアプローチのように思えます。
  2. データオブジェクトParcelableを作成し、それらをプッシュするAIDLか、マルチスレッドが必要ない場合はMessengerアプローチを使用します。私の意見では、バックグラウンドでデータベースを気にする ORM ライブラリを使用できるため、このアプローチはより簡単に思えます。以前に ContentProvider を使用したことはありませんでしたが、最初に見たとき、ContentProvider を使用することは SQL クエリを手動で作成することに少し似ていると思いました (間違っている場合は教えてください)。

ここで、長所と短所を見逃していないかどうか、およびこれら 2 つのアプローチに顕著なパフォーマンスの違いがあるかどうかを知りたいと思います。また、どのソリューションを希望しますか? また、その理由は何ですか?

前もって感謝します!どんな返信でも大歓迎です!

0 投票する
1 に答える
71 参照

java - SDK/ライブラリにサービスを含める

スタンドアロン APK として記述された Android サービスを取得しました。これを SDK に含めようとしています。これにより、SDK から公開されている関数を介してサービスが自動的にインストールされます。

これを達成する方法はありますか?

たとえば、SDK はヘルパー関数を持つ monitor.jar です。このサービスは、現在監視している株式の値を返すバックグラウンド サービスを実行する GetCurrentMonitor.apk です。

ここで、SDK をリリースして、サードパーティのアプリに含まれているときに、GetCurrentMonitor プロジェクトのバックグラウンド サービスを自動的にインストールするようにしたいと考えています...

どんな助けでも大歓迎です。

ありがとうございました、

0 投票する
3 に答える
3415 参照

android - Android:AIDLパラメーターがnullを受け取る

バインドされたアクティビティとサービスを取得しました。

onServiceConnectedがServiceConnectionで呼び出されると、次のことを行います。

mControllerは次のとおりです。

IInterface1とIInterface2はどちらもAIDLファイルです。

今問題。サービスでのレジスタの実装。パラメータはnullになります。

私は何が間違っているのですか?