diff options
Diffstat (limited to 'platform/android/java')
| -rw-r--r-- | platform/android/java/AndroidManifest.xml | 55 | ||||
| -rw-r--r-- | platform/android/java/build.gradle | 113 | ||||
| -rw-r--r-- | platform/android/java/src/org/godotengine/godot/Godot.java | 9 | 
3 files changed, 176 insertions, 1 deletions
diff --git a/platform/android/java/AndroidManifest.xml b/platform/android/java/AndroidManifest.xml new file mode 100644 index 0000000000..613d24fbd2 --- /dev/null +++ b/platform/android/java/AndroidManifest.xml @@ -0,0 +1,55 @@ +<?xml version="1.0" encoding="utf-8"?> +<manifest xmlns:android="http://schemas.android.com/apk/res/android" +      xmlns:tools="http://schemas.android.com/tools" +      package="com.godot.game" +      android:versionCode="1" +      android:versionName="1.0" +      android:installLocation="auto" +      > +<supports-screens android:smallScreens="true" +                      android:normalScreens="true" +                      android:largeScreens="true" +                      android:xlargeScreens="true"/> + +<!--glEsVersion is modified by the exporter, changing this value here has no effect--> +    <uses-feature android:glEsVersion="0x00020000" android:required="true" /> +<!--Adding custom text to manifest is fine, but do it outside the custom user and application BEGIN/ENDregions, as that gets rewritten--> + +<!--Custom permissions XML added by add-ons. It's recommended to add them from the export preset, though--> +<!--CHUNK_USER_PERMISSIONS_BEGIN--> +<!--CHUNK_USER_PERMISSIONS_END--> + +<!--Anything in this line after the icon will be erased when doing custom build. If you want to add tags manually, do before it.--> +    <application android:label="@string/godot_project_name_string" android:allowBackup="false" tools:ignore="GoogleAppIndexingWarning" android:icon="@drawable/icon"> + +<!--The following values are replaced when Godot exports, modifying them here has no effect. Do theses changes in the--> +<!--export preset. Adding new ones is fine.--> + +        <activity android:name="org.godotengine.godot.Godot" +                  android:label="@string/godot_project_name_string" +                  android:theme="@android:style/Theme.NoTitleBar.Fullscreen" +                  android:launchMode="singleTask" +                  android:screenOrientation="landscape" +                  android:configChanges="orientation|keyboardHidden|screenSize|smallestScreenSize" +                  android:resizeableActivity="false" +                  tools:ignore="UnusedAttribute"> + +            <intent-filter> +                <action android:name="android.intent.action.MAIN" /> +                <category android:name="android.intent.category.LAUNCHER" /> +            </intent-filter> +        </activity> +    <service android:name="org.godotengine.godot.GodotDownloaderService" /> + +<!--Custom application XML added by add-ons--> +<!--CHUNK_APPLICATION_BEGIN--> +<!--CHUNK_APPLICATION_END--> + +    </application> + +    <instrumentation android:icon="@drawable/icon" +                     android:label="@string/godot_project_name_string" +                     android:name="org.godotengine.godot.GodotInstrumentation" +                     android:targetPackage="org.godotengine.game" /> + +</manifest> diff --git a/platform/android/java/build.gradle b/platform/android/java/build.gradle new file mode 100644 index 0000000000..c468277daa --- /dev/null +++ b/platform/android/java/build.gradle @@ -0,0 +1,113 @@ +//Gradle project for Godot Engine Android port. +//Do not modify code between the BEGIN/END sections, as it's autogenerated by add-ons + +buildscript { +	repositories { +		google() +		jcenter() +//CHUNK_BUILDSCRIPT_REPOSITORIES_BEGIN +//CHUNK_BUILDSCRIPT_REPOSITORIES_END +	} +	dependencies { +		classpath 'com.android.tools.build:gradle:3.2.1' +//CHUNK_BUILDSCRIPT_DEPENDENCIES_BEGIN +//CHUNK_BUILDSCRIPT_DEPENDENCIES_END +	} +} + +apply plugin: 'com.android.application' + +allprojects { +    repositories { +	mavenCentral() +	google() +	jcenter() +//CHUNK_ALLPROJECTS_REPOSITORIES_BEGIN +//CHUNK_ALLPROJECTS_REPOSITORIES_END + +    } +} + +dependencies { +	implementation "com.android.support:support-core-utils:28.0.0" +//CHUNK_DEPENDENCIES_BEGIN +//CHUNK_DEPENDENCIES_END +} + +android { + +	lintOptions { +		abortOnError false +		disable 'MissingTranslation','UnusedResources' +	} + +	compileSdkVersion 28 +	buildToolsVersion "28.0.3" +	useLibrary 'org.apache.http.legacy' + +	packagingOptions { +		exclude 'META-INF/LICENSE' +		exclude 'META-INF/NOTICE' +	} +	defaultConfig { +		minSdkVersion 18 +		targetSdkVersion 28 +//CHUNK_ANDROID_DEFAULTCONFIG_BEGIN +//CHUNK_ANDROID_DEFAULTCONFIG_END +	} +	// Both signing and zip-aligning will be done at export time +	buildTypes.all { buildType -> +		buildType.zipAlignEnabled false +		buildType.signingConfig null +	} +	sourceSets { +		main { +			manifest.srcFile 'AndroidManifest.xml' +			java.srcDirs = ['src' +//DIR_SRC_BEGIN +//DIR_SRC_END +			] +			res.srcDirs = [ +				'res' +//DIR_RES_BEGIN +//DIR_RES_END +			] +			aidl.srcDirs = [ +				'aidl' +//DIR_AIDL_BEGIN +//DIR_AIDL_END +			] +			assets.srcDirs = [ +				'assets' +//DIR_ASSETS_BEGIN +//DIR_ASSETS_END + +			] +		} +		debug.jniLibs.srcDirs = [ +			'libs/debug' +//DIR_JNI_DEBUG_BEGIN +//DIR_JNI_DEBUG_END +		] +		release.jniLibs.srcDirs = [ +			'libs/release' +//DIR_JNI_RELEASE_BEGIN +//DIR_JNI_RELEASE_END +		] +	} +// No longer used, as it's not useful for build source template +//	applicationVariants.all { variant -> +//		variant.outputs.all { output -> +//			output.outputFileName = "../../../../../../../bin/android_${variant.name}.apk" +//		} +//	} + +} + +//CHUNK_GLOBAL_BEGIN +//CHUNK_GLOBAL_END + + + + + diff --git a/platform/android/java/src/org/godotengine/godot/Godot.java b/platform/android/java/src/org/godotengine/godot/Godot.java index a9edc2f2f4..374d40463a 100644 --- a/platform/android/java/src/org/godotengine/godot/Godot.java +++ b/platform/android/java/src/org/godotengine/godot/Godot.java @@ -99,6 +99,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  	static final int MAX_SINGLETONS = 64;  	static final int REQUEST_RECORD_AUDIO_PERMISSION = 1; +	static final int REQUEST_CAMERA_PERMISSION = 2;  	private IStub mDownloaderClientStub;  	private IDownloaderService mRemoteService;  	private TextView mStatusText; @@ -425,7 +426,7 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  		}  		io = new GodotIO(this); -		io.unique_id = Secure.ANDROID_ID; +		io.unique_id = Secure.getString(getContentResolver(), Secure.ANDROID_ID);  		GodotLib.io = io;  		mSensorManager = (SensorManager)getSystemService(Context.SENSOR_SERVICE);  		mAccelerometer = mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER); @@ -956,6 +957,12 @@ public class Godot extends Activity implements SensorEventListener, IDownloaderC  			}  		} +		if (p_name.equals("CAMERA")) { +			if (ContextCompat.checkSelfPermission(this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) { +				requestPermissions(new String[] { Manifest.permission.CAMERA }, REQUEST_CAMERA_PERMISSION); +				return false; +			} +		}  		return true;  	}  |