Browse Source

Address `OS.request_permissions()` bug when non-platform permission(s) is included

(cherry picked from commit ef62506e5cc3f61b020ac0679bb3122a346e50af)
Fredia Huya-Kouadio 5 years ago
parent
commit
918f5dee23

+ 7 - 4
platform/android/java/lib/src/org/godotengine/godot/utils/PermissionsUtil.java

@@ -36,6 +36,7 @@ import android.content.pm.PackageManager;
 import android.content.pm.PermissionInfo;
 import android.os.Build;
 import android.support.v4.content.ContextCompat;
+import android.util.Log;
 import java.util.ArrayList;
 import java.util.List;
 import org.godotengine.godot.Godot;
@@ -46,6 +47,8 @@ import org.godotengine.godot.Godot;
  */
 public final class PermissionsUtil {
 
+	private static final String TAG = PermissionsUtil.class.getSimpleName();
+
 	static final int REQUEST_RECORD_AUDIO_PERMISSION = 1;
 	static final int REQUEST_CAMERA_PERMISSION = 2;
 	static final int REQUEST_VIBRATE_PERMISSION = 3;
@@ -113,8 +116,8 @@ public final class PermissionsUtil {
 					dangerousPermissions.add(manifestPermission);
 				}
 			} catch (PackageManager.NameNotFoundException e) {
-				e.printStackTrace();
-				return false;
+				// Skip this permission and continue.
+				Log.w(TAG, "Unable to identify permission " + manifestPermission, e);
 			}
 		}
 
@@ -153,8 +156,8 @@ public final class PermissionsUtil {
 					dangerousPermissions.add(manifestPermission);
 				}
 			} catch (PackageManager.NameNotFoundException e) {
-				e.printStackTrace();
-				return new String[0];
+				// Skip this permission and continue.
+				Log.w(TAG, "Unable to identify permission " + manifestPermission, e);
 			}
 		}