私はAndroid開発の新機能です。 AndroidでReflection APIの使用に関する質問があります。Androidでのリフレクションの使い方が悪いのですか?
私は、Bluetoothを接続するには、このようにいくつかのコードを書くことができます例については:
try {
Method connectMethod = proxy.getClass().getDeclaredMethod("connect", BluetoothDevice.class);
if(!((Boolean) connectMethod.invoke(proxy, device))){
Log.i(TAG, "Unable to start connection");
} else {
Log.i(TAG, "Connection Successful");
}
} catch (Exception e) {
Log.e(TAG, "Unable to reflect android.bluetooth.BluetoothPan", e);
}
同様に他のAPIは、テザリングを設定し、他のstuffsを行うために使用することができます。 これらの機能(セットテザリングなど)は、ユーザーが電話機の設定アプリケーションから行うと想定されています。
これは私の質問です。
- Androidの開発で反射を使用することはお勧めしませんか?
- これらの機能のカスタム権限を作成し、ユーザー権限に追加すると、設計上サポートされますか?リフレクションAPIアクセスには特別なアクセス許可(ユーザー許可)が必要ないためです。
- Androidのデザインパターンごとに、リフレクションAPIを使用するのがタブーですか?
メソッドやフィールドにアクセスするために使用すると、通常はアクセスできなくなりますが、これは間違いなくあなたを薄い氷に置きます。 – Henry
@Henry:あなたの返事をありがとう。しかし、あなたはいくつかの例で説明することができます。私がテザリングだけで動作する1つのアプリを開発していると仮定して、ユーザが設定に行き、手動でテザリングを開始する必要があるたびに、私が反射を使って同じ仕事をしているのなら、私は "薄い氷"の上にいるのですか? – Saby
はい、APIデザイナーがサポートしていないことをしているからです。少しのバージョンアップでも壊れるかもしれません。 – Henry