1

Bluetooth を使用する Android アプリケーションを作成しようとしていますが、いくつかの問題が発生しました。Android Developers ポータルのガイドに従って作業することに成功しました。しかし、コードを少し整理して、Bluetooth に関連するすべてを別のクラス/src ファイルに移動したいと考えています。Bluetoothをオンにしようとすると、すでに問題が発生しています。上記のガイドに従って、これは次のように行われます。

Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);

ただし、私のクラスはアクティビティではなく、startActivityForResult は定義されていません。メイン アクティビティのコンテキストを Bluetooth クラスに渡し、その上で startActivityForResult を呼び出すことができます。これは機能します。しかし、結果はメイン アクティビティに返され、Bluetooth 専用クラスの代わりにコードを書き込む必要があります。

または、Bluetooth クラスで Activity クラスを拡張することもできます。しかし、startActivityForResult は nullPointer 例外を返します (「Activity」が初期化されていないため、これを受け入れます)。

私は Android アプリの開発にまったく慣れていないので、問題を解決するために何を調べればよいかについての指針を期待しています。将来のアプリで再利用できるように、Bluetooth に関連するすべてを 1 つの class/src ファイルにまとめたいと思います。

それを達成する方法のすべてのアイデアは大歓迎です。

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

4

1 に答える 1

0

継承ではなく合成。

Activity をコンストラクターとして BluetoothGodClass に渡し、それをインスタンス変数に格納し、それを使用してそれぞれのメソッドを呼び出します。しかし。

あなたは本当に何をする必要がありますか?UI は Bluetooth を制御する必要がありますか? メソッド turnOnBluetooth(Activity activity) を作成し、それを使用します。呼び出したアクティビティの特定の結果を本当に受け取る必要がありますか? そうでない場合は、Context または BroadcastReceiver を使用します。

于 2013-09-19T18:31:40.903 に答える