Ue4でandroidビルド ...できなかった...
- 5. Android6.0以降でPermissionをきくユースケース
// 設定されているパーミッションの一覧を取得する
public static ArrayList<String> getSettingPermissions(Context context){
ArrayList<String> list = new ArrayList<String>();
PackageInfo packageInfo = null;
try {
packageInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), PackageManager.GET_PERMISSIONS);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
if(packageInfo == null || packageInfo.requestedPermissions == null) return list;
for(String permission : packageInfo.requestedPermissions){
list.add(permission);
}
return list;
}
参照
https://github.com/TakuKobayashi/ggrks_scanner/blob/master/app/src/main/java/kobayashi/taku/com/ggrks_scanner/ApplicationHelper.java
- 6. Android6.0以降でPermissionをきくユースケース
// 既にユーザーがパーミッションを承認しているかどうか
public static boolean hasSelfPermission(Context context, String permission) {
if(Build.VERSION.SDK_INT < 23) return true;
return context.checkSelfPermission(permission) == PackageManager.PERMISSION_GRANTED;
}
参照
https://github.com/TakuKobayashi/ggrks_scanner/blob/master/app/src/main/java/kobayashi/taku/com/ggrks_scanner/ApplicationHelper.java
- 7. Android6.0以降でPermissionをきくユースケース
// パーミッションを聞く
public static void requestPermissions(Activity activity, int requestCode){
if(Build.VERSION.SDK_INT >= 23) {
ArrayList<String> permissions = ApplicationHelper.getSettingPermissions(activity);
boolean isRequestPermission = false;
for(String permission : permissions){
if(!ApplicationHelper.hasSelfPermission(activity, permission)){
isRequestPermission = true;
break;
}
}
if(isRequestPermission) {
activity.requestPermissions(permissions.toArray(new String[0]), requestCode);
}
}
}
参照
https://github.com/TakuKobayashi/ggrks_scanner/blob/master/app/src/main/java/kobayashi/taku/com/ggrks_scanner/ApplicationHelper.java