*android.intent.action.SIM_STATE_CHANGED* のブロードキャスト インテントを受信すると反応するブロードキャスト レシーバーに依存するアプリ (SIM Locked Notifier) が市場に出回っています。最新バージョン 4.0.3 (つまり、SDK レベル 15) であり、その互換性をより低いレベルに拡張したいと考えています (アクション バーや設定フラグメントなど、利用できないものに対するランタイム チェックを提供します)... 問題は、*SIM_STATE_CHANGED が* イベントは古いプラットフォームでも生成されます..この意図は文書化されておらず、SDK 内の *platforms/android-15/data/broadcast_actions.txt* 内でも見つかりません..ソースを掘り下げてどこにあるかを理解する必要がありますどの SDK レベルまで実装されていますか? これはベンダー固有のイベントですか? 私はそれが動作する HTC One X を持っています。
質問する
2120 次
1 に答える
0
最初の質問についてはよくわかりませんが、2 番目の質問についてはお答えできます。
そして今、その互換性をより低いレベルに拡張したいと考えています(アクションバーや設定フラグメントなど、利用できないものに対するランタイムチェックを提供します)
この場合、リフレクションが役立ちます。リフレクションを使用すると、使用可能なメソッド、コンストラクターなどのクラスをクエリできます。
アプリケーションで PopupMenu を使用するとします。また、アプリケーションを 4.0 より前のデバイスで実行したい場合もあります。そのため、リフレクションを使用します。
次のコード スニペットと少しの Google 検索が役に立ちます。
String sClassName = "android.widget.PopupMenu";
try {
Class classToInvestigate = Class.forName(sClassName);
Yes!!! Class is aviliable now do whatever you want to do with PopupMenu.
// Dynamically do stuff with this class
// List constructors, fields, methods, etc.
} catch (ClassNotFoundException e) {
// Class not found!
it means application is running on pre 4.0 version device.
} catch (Exception e) {
// Unknown exception
}
于 2012-06-02T10:30:56.420 に答える