mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Target Android SDK 29.
Includes a nasty SDK bug workaround.
This commit is contained in:
parent
8e99263949
commit
a2da6ceb47
3 changed files with 30 additions and 6 deletions
|
@ -39,7 +39,8 @@
|
||||||
android:label="@string/app_name"
|
android:label="@string/app_name"
|
||||||
android:logo="@drawable/ic_banner"
|
android:logo="@drawable/ic_banner"
|
||||||
android:isGame="true"
|
android:isGame="true"
|
||||||
android:banner="@drawable/tv_banner">
|
android:banner="@drawable/tv_banner"
|
||||||
|
android:requestLegacyExternalStorage="true">
|
||||||
<meta-data android:name="android.max_aspect" android:value="2.4" />
|
<meta-data android:name="android.max_aspect" android:value="2.4" />
|
||||||
<activity
|
<activity
|
||||||
android:name=".PpssppActivity"
|
android:name=".PpssppActivity"
|
||||||
|
|
|
@ -34,8 +34,8 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
compileSdkVersion 28
|
compileSdkVersion 29
|
||||||
buildToolsVersion '28.0.3'
|
buildToolsVersion '29.0.3'
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId 'org.ppsspp.ppsspp'
|
applicationId 'org.ppsspp.ppsspp'
|
||||||
if (androidGitVersion.name() != "unknown" && androidGitVersion.code() >= 14000000) {
|
if (androidGitVersion.name() != "unknown" && androidGitVersion.code() >= 14000000) {
|
||||||
|
@ -51,7 +51,7 @@ android {
|
||||||
new File("versioncode.txt").write(androidGitVersion.code().toString())
|
new File("versioncode.txt").write(androidGitVersion.code().toString())
|
||||||
|
|
||||||
minSdkVersion 9
|
minSdkVersion 9
|
||||||
targetSdkVersion 28
|
targetSdkVersion 29
|
||||||
if (project.hasProperty("ANDROID_VERSION_CODE") && project.hasProperty("ANDROID_VERSION_NAME")) {
|
if (project.hasProperty("ANDROID_VERSION_CODE") && project.hasProperty("ANDROID_VERSION_NAME")) {
|
||||||
versionCode ANDROID_VERSION_CODE
|
versionCode ANDROID_VERSION_CODE
|
||||||
versionName ANDROID_VERSION_NAME
|
versionName ANDROID_VERSION_NAME
|
||||||
|
|
|
@ -13,6 +13,8 @@ import android.os.Build;
|
||||||
import android.os.Bundle;
|
import android.os.Bundle;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
|
||||||
class LocationHelper implements LocationListener {
|
class LocationHelper implements LocationListener {
|
||||||
|
@ -25,6 +27,8 @@ class LocationHelper implements LocationListener {
|
||||||
private GpsStatus.NmeaListener mNmeaListener;
|
private GpsStatus.NmeaListener mNmeaListener;
|
||||||
private float mAltitudeAboveSeaLevel = 0f;
|
private float mAltitudeAboveSeaLevel = 0f;
|
||||||
private float mHdop = 0f;
|
private float mHdop = 0f;
|
||||||
|
private Method addNmeaListenerMethod = null;
|
||||||
|
private Method removeNmeaListenerMethod = null;
|
||||||
|
|
||||||
LocationHelper(Context context) {
|
LocationHelper(Context context) {
|
||||||
mLocationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
|
mLocationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
|
||||||
|
@ -70,7 +74,17 @@ class LocationHelper implements LocationListener {
|
||||||
onNmea(nmea);
|
onNmea(nmea);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
mLocationManager.addNmeaListener(mNmeaListener);
|
|
||||||
|
// Use reflection to work around a bug in the Android 29 SDK.
|
||||||
|
// https://stackoverflow.com/questions/57975969/accessing-nmea-on-android-api-level-24-when-compiled-for-target-api-level-29
|
||||||
|
try {
|
||||||
|
if (addNmeaListenerMethod == null) {
|
||||||
|
addNmeaListenerMethod = LocationManager.class.getMethod("addNmeaListener", GpsStatus.NmeaListener.class);
|
||||||
|
}
|
||||||
|
addNmeaListenerMethod.invoke(mLocationManager, mNmeaListener);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.w(TAG, "Couldn't get the nmea add method: " + e.toString());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
mLocationEnable = true;
|
mLocationEnable = true;
|
||||||
} catch (SecurityException e) {
|
} catch (SecurityException e) {
|
||||||
|
@ -100,7 +114,16 @@ class LocationHelper implements LocationListener {
|
||||||
mGpsStatusListener = null;
|
mGpsStatusListener = null;
|
||||||
}
|
}
|
||||||
if (mNmeaListener != null) {
|
if (mNmeaListener != null) {
|
||||||
mLocationManager.removeNmeaListener(mNmeaListener);
|
// Use reflection to work around a bug in the Android 29 SDK.
|
||||||
|
// https://stackoverflow.com/questions/57975969/accessing-nmea-on-android-api-level-24-when-compiled-for-target-api-level-29
|
||||||
|
try {
|
||||||
|
if (removeNmeaListenerMethod == null) {
|
||||||
|
removeNmeaListenerMethod = LocationManager.class.getMethod("removeNmeaListener", GpsStatus.NmeaListener.class);
|
||||||
|
}
|
||||||
|
removeNmeaListenerMethod.invoke(mLocationManager, mNmeaListener);
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.w(TAG, "Couldn't get the nmea remove method: " + e.toString());
|
||||||
|
}
|
||||||
mNmeaListener = null;
|
mNmeaListener = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue