2017-01-21 2 views
1

デバイスがマルチウィンドウモードをサポートしているかどうかの確認に問題があります。私はこの機能を使用してisInMultiWindowMode()を確認していますが、API24で追加されています。また、APIのバージョンが低いデバイスでアプリを実行しているときに例外が発生します。下位APIバージョンの場合、この関数を置き換えることはできますか?マルチウィンドウのサポートを確認する

+0

下位APIに存在しない場合は、どうすれば確認できますか? –

答えて

0

下位APIバージョンの代わりにこの機能を使用できますか?

Android SDKには含まれていません。また、何らかの理由で、isInMultiWindowMode()ActivityCompatに追加しないようにしました。おそらく対応するイベント(onMultiWindowModeChanged())がサポートされていない可能性があります。

だから、ここ無償交換の方法です:

public static boolean isInMultiWindowMode(Activity a) { 
    if (Build.VERSION.SDK_INT<Build.VERSION_CODES.M) { 
    return false; 
    } 

    return a.isInMultiWindowMode(); 
} 

はどこかにいくつかのユーティリティクラスにそれを追加し、必要に応じてそれを呼び出します。

また、isInMultiWindowMode()にはa race conditionが含まれているため、IMHOは信頼できません。

+0

マルチウィンドウサポートとisInMultiWindowMode()がAndroid N(API 24)で追加されました。 –

関連する問題