0

*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 を持っています。

4

1 に答える 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 に答える