0

私はそれを見つけました:http://gitorious.org/android-obex/pages/Home

私のAndroidアプリから呼び出したいのですが、誰かがその方法を知っていますか?

4

2 に答える 2

1

リンクしたページのコマンドラインツールは、開発者の電話で使用できるルートadbシェルからの使用を目的としているようであり、特定の消費者の電話で実際に使用できるバージョンのBluetoothスタックを使用していない可能性があります。スタンドアロンの実行可能ファイルの使用も「Androidの方法」ではありません。通常、アプリケーションのプロセス内でjniを介して呼び出すコードをライブラリにビルドする必要がありますが、可能な場合はデバイスでrootとしてコードを実行する必要がある場合は、別のプロセスとして実行する必要があります(アプリ自体をrootとして実行することはできません)。

ルート権限を取得されたデバイスでこのコードを試してみたい場合は、suコマンドを実行し、コマンドラインプログラムの名前とパラメーターをパイプする方法に関する多くのStackOverflowの回答の1つを探してください。これは、機能させるのが難しく、サポートされておらず、すべてのデバイスで確実に機能するとは限りません。

あなたが物事をやりたいのなら、「アンドロイドの方法」は、現在のアンドロイドのブルートゥースAPIにプラグインするようにコードを書いたり適応させたりすることを検討します。これはJavaコードである可能性がありますが、適切なネイティブAPIがあるかどうかを確認したり、ネイティブコードからjniを介してJavaAPIを使用したりできます。

于 2011-09-04T13:20:27.253 に答える
0

これを読むと便利です:

アプリケーションのコアコンポーネントの3つ(アクティビティ、サービス、ブロードキャストレシーバー)は、インテントと呼ばれるメッセージを介してアクティブ化されます。インテントメッセージングは​​、同じアプリケーションまたは異なるアプリケーションのコンポーネント間の実行時のバインドを遅らせるための機能です。

インテントを使用すると、アクティビティまたはサービスを開始できます。

いずれかのブロードキャストメソッド(Context.sendBroadcast()、Context.sendOrderedBroadcast()、Context.sendStickyBroadcast()など)に渡されたインテントオブジェクトは、関心のあるすべてのブロードキャストレシーバーに配信されます。多くの種類のブロードキャストは、システムコードから発生します。

したがって、必要なのは、開始するアプリケーションを受信できるインテントを決定し、特定のブロードキャストインテントを送信することだけです。アプリケーションがインストールされている場合は起動され、インストールされていない場合は何も起こりません。

それが役に立てば幸い。

于 2011-09-04T10:01:26.557 に答える