実行時にAndroid Marshmallow実行時アクセス権を特定のアプリケーションで処理する必要があるかどうかを確認したいと考えています。Android:実行時のアクセス許可を尋ねる必要があるかどうかを確認してください
以下の前提が正しいですか?ここで
/**
* Checks whether runtime permissions must be handled or not.
*
* @param context Application context.
* @return Handle runtime permissions or not.
*/
public static boolean shouldCheckRuntimePermissions(Context context) {
return
isApplicationWithMarshmallowTargetSdkVersion(context) &&
Build.VERSION.SDK_INT >= Build.VERSION_CODES.M;
}
/**
* Checks whether the app is compiled with targetSdkVersion Marshmallow or above.
*
* @param context Application context.
* @return Application targetSdkVersion above 23 or not.
*/
public static boolean isApplicationWithMarshmallowTargetSdkVersion(Context context) {
return
context.getApplicationInfo().targetSdkVersion >= Build.VERSION_CODES.M;
}
は、例えば
ACCESS_COARSE_LOCATION
権限がAndroidのマシュマロランタイム権限を持つユーザーに依頼することが必要であったところ、私が詳しく説明しているテーブルです。
====================
target SDK |<23| 23|
====================
|<23| X | X |
------------|
OS SDK |23 | X | V |
====================
私はサポートライブラリhelpersの存在を知っているが、私は、この特定のケースのためにそれらを避けたいと思います。
は、私はあなただけのターゲットバージョンとビルドSDKのバージョンを確認する必要があると思うだけでは、開発しながら、狙ったSDKを示します。 –
@ LuisMiguelSierra私はtargetSDK 23とOS SDK 22を使ってアプリケーションを実行すると、実行時の権限を要求する必要はありません。少なくともこれは私が危険なCOARSE_LOCATIONでテストしたものです。 – GoRoS
あなたの前提は良いと思います。いいですか? –