You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#lockdown Nick.Penwarden
#rb None
==========================
MAJOR FEATURES + CHANGES
==========================
Change 3156770 on 2016/10/10 by Allan.Bentham
Fix VULKAN_ENABLE_API_DUMP build on android.
Change 3157838 on 2016/10/11 by Allan.Bentham
Fix Vulkan API tracing on android.
Change 3170713 on 2016/10/21 by Steve.Cano
Adding the "Optional Mobile Features BP Library" plugin to explose Blueprint functions for Sound Volume, Battery level, system temperature (only available on android), and Headphones being plugged in
#jira UE-30896
#android
#ios
#ue4
Change 3171064 on 2016/10/21 by Steve.Cano
Plugins to provide a common interface and Android implemenation for providing access to GPS / Location data from Blueprints
#ue4
#android
#jira UE-35917
Change 3171065 on 2016/10/21 by Steve.Cano
IOS implementation of LocationServices plugin to provide access to location data in Blueprints
#ue4
#ios
#jira UE-35917
Change 3181802 on 2016/11/01 by Steve.Cano
Fix an issue introduced in CL 3170713 - Adding new config section to RequiredSections list so that we can generate projects successfully.
#jira UE-30896
#ios
Change 3181807 on 2016/11/01 by Steve.Cano
Make sure to clear out references to our eglSurface when we destroy it, else we will try to set our context with an invalid surface.
#jira UE-35004
#android
#ue4
Change 3184827 on 2016/11/03 by Allan.Bentham
Do not HDR32 encode for views without view family.
TranslucentAlphaOnly blend mode now works with encoding.
#jira UE-37951
Change 3186684 on 2016/11/04 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3188693 on 2016/11/07 by Chris.Babcock
Corrections to memory stats for Android
#jira WEX-3760
#ue4
#android
Change 3191538 on 2016/11/09 by Allan.Bentham
Mobile tonemapper can use CVarTonemapperOverride
Change 3192575 on 2016/11/09 by Chris.Babcock
Support placing UE4Game files in ExternalFilesDir for automatic cleanup on uninstall for distribution packages
#jira UEPLAT-1422
#ue4
#android
Change 3196231 on 2016/11/13 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3196538 on 2016/11/14 by Jack.Porter
Fix issue where lighting would not build for the first editor session of projects defaulting to MobileHDR=false as HardwareTargetingModule didn't set cvars
#jira UE-38507
Change 3198068 on 2016/11/15 by Dmitriy.Dyomin
Fixed android console command sender to work with ADB version 1.0.36
#jira UE-35171
Change 3200230 on 2016/11/16 by Jack.Porter
Remove mosaic resolution limitation on ES3 devices
#jira WEX-3119
Change 3201251 on 2016/11/16 by Chris.Babcock
Fix Android compile error
Change 3203542 on 2016/11/18 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3205598 on 2016/11/21 by Dmitriy.Dyomin
Fixed: Missing selection outline in editor ES2 preview
#jira UE-6458
Change 3205622 on 2016/11/21 by Dmitriy.Dyomin
Fix ES2 build error from CL# 3205598
Change 3207232 on 2016/11/22 by Dmitriy.Dyomin
ES2 GLSL generated shader simplifications
Change 3208608 on 2016/11/23 by Dmitriy.Dyomin
Fixed: Landscape Grasstype warning causes log spam when landscape is streamed in or out
#jira UE-38694
Change 3209135 on 2016/11/23 by Alicia.Cano
Packaging for iOS fails due to several invalid object type errors
#jira UE-38431
#ios
Change 3209822 on 2016/11/24 by Jack.Porter
IWYU changes for LocationServicesBPLibrary
Change 3209824 on 2016/11/24 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3210264 on 2016/11/25 by Jack.Porter
Fix unicode compile issue on Korean windows
Change 3210268 on 2016/11/25 by Jack.Porter
IWYU and unicode fixes to Dev-Mobile
Change 3211800 on 2016/11/28 by Allan.Bentham
Create and set PrimitiveSceneProxy->PrimitiveSceneInfo before SetTransform render thread command is enqueued. Avoids race condition with FPrimitiveSceneInfo's constructor which can occur on out-of-order CPUs.
Change 3212621 on 2016/11/28 by Jack.Porter
More IWYU fixes.
Change 3213080 on 2016/11/29 by Allan.Bentham
enable UseSingleSampleShadowFromStationaryLights on mobile.
PR #2990: Fixes single sample shadows for mobile. (Contributed by kallehamalainen)
Change 3213164 on 2016/11/29 by Jack.Porter
Win32 IWYU fix
Change 3213932 on 2016/11/29 by Chris.Babcock
Fix handling of ETC2 filtering by Google Play Store (if only ETC2, require ES3.0+ but don't use texture filtering in manifest)
#jira UE-39120
#ue4
#android
Change 3214563 on 2016/11/29 by Dmitriy.Dyomin
Disable dynamic buffer discarding on Adreno330 (was casuing 10ms stalls on slate buffers update)
Change 3214571 on 2016/11/29 by Dmitriy.Dyomin
Custom stencil on Mobile
#jira UEMOB-183
Change 3214641 on 2016/11/30 by Dmitriy.Dyomin
Disable distance culling when rendering image for world composition
#jira UE-37754
Change 3214656 on 2016/11/30 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3218479 on 2016/12/01 by Jack.Porter
Fix for Vulkan build error when using AutoSDK
Change 3218596 on 2016/12/02 by Dmitriy.Dyomin
Fixed: Android split screen multiplayer does not function or render correctly
#jira UE-35204
Change 3218874 on 2016/12/02 by Allan.Bentham
Fix CSM shadow bug when ES3.1 + mobileHDR == false.
Fix inverted culling when rendering shadow depths with mobilehdr == false
#jira UE-39111
Change 3220911 on 2016/12/04 by Jack.Porter
Fixed landscape duplicated GUID detection and crash when one of the landscapes is in a hidden streaming level
Change 3220935 on 2016/12/04 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3222831 on 2016/12/05 by Dmitriy.Dyomin
Added support for MGD and Andreno profilers
#jira UEMOB-184
Change 3222843 on 2016/12/05 by Jack.Porter
Fixed bug caused by CL 3196538 causing r.MobileHDR to toggle and crash when opening render settings
#jira UE-38507
Change 3222934 on 2016/12/06 by Jack.Porter
Android graphics debugger text changes
Change 3223042 on 2016/12/06 by Dmitriy.Dyomin
Fixed: missing GPU particles in LDR mode on device
#jira UE-39363
Change 3223043 on 2016/12/06 by Jack.Porter
Fixed logspam warnings from TcpMessaging launching on Android
#jira UE-37895
Change 3223046 on 2016/12/06 by Allan.Bentham
Move ES3.1 preview mode out of experimental.
Add per device quality level preview to ES3.1 preview sub menu when project settings allow.
#jira UEMOB-178
Change 3223113 on 2016/12/06 by Allan.Bentham
changed MOBILE_EMULATION define for METAL_PROFILE on mac. fixes issues with editor primitive rendering with ES3.1 feature level preview.
added -featureleveles2/31 commandline support to metalrhi.
Change 3223117 on 2016/12/06 by Allan.Bentham
Initialise FPrimitiveSceneInfo::CachedReflectionCaptureProxies
Change 3223131 on 2016/12/06 by Allan.Bentham
Fix translucency rendering when mobilehdr == false. (Disable mod shadows when mobilehdr == false.)
#jira UE-38343
Change 3223162 on 2016/12/06 by Jack.Porter
Disallow Absolute World Position with "excluding shader offset" on ES2
#jra UE-25555
Change 3223204 on 2016/12/06 by Jack.Porter
Fix for unable to save levels when landscape components with tessellation moved to another level
#jira UE-39372
Change 3223677 on 2016/12/06 by Chris.Babcock
Fix tabs
Change 3224139 on 2016/12/06 by Chris.Babcock
Support modification of build.xml and add post import additions to GameActivity
#jira UE-31372
#PR #2440
#ue4
#android
Change 3224152 on 2016/12/06 by Chris.Babcock
Add support for MadCatz C.T.R.L.R Android controller models
#ue4
#android
Change 3224162 on 2016/12/06 by Chris.Babcock
Driver bug fix and using separate context for MediaPlayer14 (contributed by BrianHarris)
#jira UE-35825
#PR #2787
#ue4
#android
Change 3224581 on 2016/12/07 by Dmitriy.Dyomin
Fixed black screen regression on iOS OpenGL
Also now reporting shader compiler errors in iOS
Change 3224589 on 2016/12/07 by Allan.Bentham
Increase mobile renderer's maximum CSM cascade limit to 4 and introduce max shadow cascade cvar for mobile which defaults to 2 retaining existing behaviour.
#jira UEMOB-187
Change 3224774 on 2016/12/07 by Jack.Porter
Added flags for mobile shader permutation reduction
Renamed mobile lighting policies to better describe them
Set flags to remove policies not used by SunTemple - saves 22MB package size on Android
#jira: UEMOB-179
Change 3224782 on 2016/12/07 by Allan.Bentham
Add project option to set maximum supported CSM cascades to mobile renderer.
#jira UEMOB-187
Change 3224943 on 2016/12/07 by Dmitriy.Dyomin
Metal iOS will use sRGB textures
#jira UEMOB-189
Change 3225098 on 2016/12/07 by Dmitriy.Dyomin
fix for compile error from 3224943
Change 3225188 on 2016/12/07 by Chris.Babcock
Fix #includes in deferred Android OpenGL
#jira UE-39440
#ue4
#android
Change 3226402 on 2016/12/07 by Dmitriy.Dyomin
Fixed: wrong condition for r8 srgb on mac
#jira UE-39471
Change 3226485 on 2016/12/08 by Dmitriy.Dyomin
Fixed: Rendering Artifacts and invisible objects in Fortnite
regression from nobile custom stencil changes
#jira UE-39452, UE-39455
Change 3226637 on 2016/12/08 by Dmitriy.Dyomin
Fixed: Odin Ensure Texture passed to ClearDepthStencil is not what is currently set as RenderTarget
#jira UE-39482
Change 3226922 on 2016/12/08 by Jack.Porter
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
Change 3227353 on 2016/12/08 by Chris.Babcock
Remove CopyVisualizers batch call again
Change 3228013 on 2016/12/08 By Chris.Babcock
Merging //UE4/Dev-Main to Dev-Mobile (//UE4/Dev-Mobile)
[CL 3228374 by Jack Porter in Main branch]
358 lines
11 KiB
XML
358 lines
11 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!--OnlineSubsystemGameCircle plugin additions-->
|
|
<root xmlns:android="http://schemas.android.com/apk/res/android">
|
|
<!-- init section is always evaluated once per architecture -->
|
|
<init>
|
|
<log text="LocationServicesAndroidImpl init"/>
|
|
<setBoolFromProperty result="bCoarseLocationEnabled" ini="Engine" section="/Script/LocationServicesAndroidEditor.LocationServicesAndroidSettings" property="bCoarseLocationEnabled" default="true"/>
|
|
<setBoolFromProperty result="bFineLocationEnabled" ini="Engine" section="/Script/LocationServicesAndroidEditor.LocationServicesAndroidSettings" property="bFineLocationEnabled" default="true"/>
|
|
<setBoolFromProperty result="bLocationUpdatesEnabled" ini="Engine" section="/Script/LocationServicesAndroidEditor.LocationServicesAndroidSettings" property="bLocationUpdatesEnabled" default="true"/>
|
|
</init>
|
|
|
|
<!-- updates applied to AndroidManifest.xml -->
|
|
<androidManifestUpdates>
|
|
|
|
<if condition="bCoarseLocationEnabled">
|
|
<true>
|
|
<addPermission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
|
|
<addFeature android:name="android.hardware.location.network"/>
|
|
</true>
|
|
</if>
|
|
<if condition="bFineLocationEnabled">
|
|
<true>
|
|
<addPermission android:name="android.permission.ACCESS_FINE_LOCATION"/>
|
|
<addFeature android:name="android.hardware.location.gps"/>
|
|
</true>
|
|
</if>
|
|
<if condition="bLocationUpdatesEnabled">
|
|
<true>
|
|
<addPermission android:name="android.permission.CONTROL_LOCATION_UPDATES"/>
|
|
</true>
|
|
</if>
|
|
|
|
</androidManifestUpdates>
|
|
|
|
<!-- GameActivity additions -->
|
|
<gameActivityImportAdditions>
|
|
<insert>
|
|
// Needed for Location Services
|
|
import android.location.Location;
|
|
import android.location.LocationListener;
|
|
import android.location.LocationManager;
|
|
import android.location.LocationProvider;
|
|
import android.location.Criteria;
|
|
</insert>
|
|
</gameActivityImportAdditions>
|
|
|
|
<gameActivityClassAdditions>
|
|
<insert>
|
|
|
|
private int LocationServicesAccuracy;
|
|
private int LocationServicesPower;
|
|
private float LocationServicesUpdateFrequency;
|
|
private float LocationServicesMinDistance;
|
|
private Location LastReportedLocation = null;
|
|
private LocationListener LocationListen = null;
|
|
|
|
public boolean AndroidThunkJava_InitLocationServices(int Accuracy, float UpdateFrequency, float MinDistanceFilter)
|
|
{
|
|
Log.debug("AndroidThunkJava_InitLocationServices");
|
|
|
|
//translate the provided Accuracy into Criteria and Distance values
|
|
switch(Accuracy)
|
|
{
|
|
case 0: //LA_ThreeKilometers:
|
|
{
|
|
LocationServicesAccuracy = Criteria.ACCURACY_LOW;
|
|
LocationServicesPower = Criteria.POWER_LOW;
|
|
break;
|
|
}
|
|
case 1: //LA_OneKilometer:
|
|
{
|
|
LocationServicesAccuracy = Criteria.ACCURACY_LOW;
|
|
LocationServicesPower = Criteria.POWER_MEDIUM;
|
|
break;
|
|
}
|
|
case 2: //LA_HundredMeters:
|
|
{
|
|
LocationServicesAccuracy = Criteria.ACCURACY_MEDIUM;
|
|
LocationServicesPower = Criteria.POWER_MEDIUM;
|
|
break;
|
|
}
|
|
case 3: //LA_TenMeters:
|
|
{
|
|
LocationServicesAccuracy = Criteria.ACCURACY_HIGH;
|
|
LocationServicesPower = Criteria.POWER_MEDIUM;
|
|
break;
|
|
}
|
|
case 4: //LA_Best:
|
|
case 5: //LA_Navigation:
|
|
{
|
|
LocationServicesAccuracy = Criteria.ACCURACY_HIGH;
|
|
LocationServicesPower = Criteria.POWER_HIGH;
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
LocationServicesAccuracy = Criteria.ACCURACY_LOW;
|
|
LocationServicesPower = Criteria.POWER_LOW;
|
|
Log.debug("AndroidThunkJava_InitLocationServices - init with invalid Accuracy value: " + Accuracy + ", setting lowest defaults\n");
|
|
break;
|
|
}
|
|
}
|
|
|
|
LocationServicesMinDistance = MinDistanceFilter;
|
|
LocationServicesUpdateFrequency = UpdateFrequency;
|
|
|
|
return true;
|
|
}
|
|
|
|
public boolean AndroidThunkJava_StartLocationService()
|
|
{
|
|
Log.debug("AndroidThunkJava_StartLocationService");
|
|
|
|
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
|
|
|
|
if(locationManager != null)
|
|
{
|
|
LocationListen = new LocationListener()
|
|
{
|
|
public void onLocationChanged(Location location)
|
|
{
|
|
// Called when a new location is found by the network location provider. Save off the value for GetLastKnownLocation and send off an event
|
|
LastReportedLocation = location;
|
|
|
|
nativeHandleLocationChanged(LastReportedLocation.getTime(),
|
|
LastReportedLocation.getLongitude(),
|
|
LastReportedLocation.getLatitude(),
|
|
LastReportedLocation.getAccuracy(),
|
|
LastReportedLocation.getAltitude());
|
|
}
|
|
|
|
public void onStatusChanged(String provider, int status, Bundle extras)
|
|
{
|
|
switch(status)
|
|
{
|
|
case LocationProvider.AVAILABLE:
|
|
Log.debug("onStatusChanged - " + provider + " available again\n");
|
|
break;
|
|
case LocationProvider.OUT_OF_SERVICE:
|
|
Log.debug("onStatusChanged - " + provider + " out of service\n");
|
|
break;
|
|
case LocationProvider.TEMPORARILY_UNAVAILABLE:
|
|
Log.debug("onStatusChanged - " + provider + " temporarily unavailable\n");
|
|
break;
|
|
}
|
|
}
|
|
|
|
public void onProviderEnabled(String provider)
|
|
{
|
|
Log.debug("onProviderEnabled: " + provider);
|
|
}
|
|
|
|
public void onProviderDisabled(String provider)
|
|
{
|
|
Log.debug("onProviderDisabled " + provider);
|
|
}
|
|
};
|
|
|
|
//requestLocationUpdates must run on main thread
|
|
_activity.runOnUiThread(new Runnable()
|
|
{
|
|
@Override
|
|
public void run()
|
|
{
|
|
try
|
|
{
|
|
LocationManager locationManager = (LocationManager) _activity.getSystemService(Context.LOCATION_SERVICE);
|
|
|
|
String providerName = GetBestLocationProvider();
|
|
|
|
locationManager.requestLocationUpdates(providerName, (long)LocationServicesUpdateFrequency, LocationServicesMinDistance, LocationListen);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
Log.debug("AndroidThunkJava_StartLocationService threw exception: " + e.getMessage());
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
});
|
|
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
Log.debug("No Location Manager found!");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
private String GetBestLocationProvider()
|
|
{
|
|
LocationManager locationManager = (LocationManager) _activity.getSystemService(Context.LOCATION_SERVICE);
|
|
|
|
Criteria providerCriteria = new Criteria();
|
|
providerCriteria.setPowerRequirement(LocationServicesPower);
|
|
providerCriteria.setHorizontalAccuracy(LocationServicesAccuracy);
|
|
String providerName = locationManager.getBestProvider(providerCriteria, true);
|
|
|
|
Log.debug("GetBestLocationProvider - getBestProvider for provided criteria returned: " + providerName);
|
|
|
|
return providerName;
|
|
}
|
|
|
|
public boolean AndroidThunkJava_StopLocationService()
|
|
{
|
|
Log.debug("AndroidThunkJava_StopLocationService");
|
|
|
|
if(LocationListen == null)
|
|
{
|
|
Log.debug("AndroidThunkJava_StopLocationService failed = no previous LocationListener registered, have not started the service");
|
|
return false;
|
|
}
|
|
|
|
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
|
|
if(locationManager == null)
|
|
{
|
|
Log.debug("AndroidThunkJava_StopLocationService - No Location Manager found!");
|
|
return false;
|
|
}
|
|
|
|
locationManager.removeUpdates(LocationListen);
|
|
LocationListen = null;
|
|
|
|
return true;
|
|
}
|
|
|
|
public float[] AndroidThunkJava_GetLastKnownLocation()
|
|
{
|
|
Location lastLocation = null;
|
|
|
|
if(LastReportedLocation != null)
|
|
{
|
|
lastLocation = LastReportedLocation;
|
|
}
|
|
else
|
|
{
|
|
//if we haven't gotten an update about the location, try to fetch the LocationManager's last known location
|
|
LocationManager locationManager = (LocationManager) this.getSystemService(Context.LOCATION_SERVICE);
|
|
if(locationManager != null)
|
|
{
|
|
try
|
|
{
|
|
String providerName = GetBestLocationProvider();
|
|
lastLocation = locationManager.getLastKnownLocation(providerName);
|
|
}
|
|
catch(Exception e) //in older APIs, isProviderEnabled will throw an exception if false...
|
|
{
|
|
Log.debug("AndroidThunkJava_GetLastKnownLocation threw exception: " + e.getMessage());
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
}
|
|
|
|
if(lastLocation == null)
|
|
{
|
|
return new float[] { 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f };
|
|
}
|
|
else
|
|
{
|
|
return new float[]
|
|
{
|
|
(float)lastLocation.getTime(),
|
|
(float)lastLocation.getLongitude(),
|
|
(float)lastLocation.getLatitude(),
|
|
lastLocation.getAccuracy(),
|
|
0.0f, //no vertical accuracy on Android, just an overall value in horizontal
|
|
(float)lastLocation.getAltitude()
|
|
};
|
|
}
|
|
}
|
|
|
|
public boolean AndroidThunkJava_IsLocationAccuracyAvailable(int Accuracy)
|
|
{
|
|
int locationAccurcy;
|
|
int locationPower;
|
|
|
|
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
|
|
if(locationManager == null)
|
|
{
|
|
Log.debug("AndroidThunkJava_IsLocationAccuracyAvailable - no LocationManager found!");
|
|
return false;
|
|
}
|
|
|
|
switch(Accuracy)
|
|
{
|
|
case 0: //LA_ThreeKilometers:
|
|
{
|
|
locationAccurcy = Criteria.ACCURACY_LOW;
|
|
locationPower = Criteria.POWER_LOW;
|
|
break;
|
|
}
|
|
case 1: //LA_OneKilometer:
|
|
{
|
|
locationAccurcy = Criteria.ACCURACY_LOW;
|
|
locationPower = Criteria.POWER_MEDIUM;
|
|
break;
|
|
}
|
|
case 2: //LA_HundredMeters:
|
|
{
|
|
locationAccurcy = Criteria.ACCURACY_MEDIUM;
|
|
locationPower = Criteria.POWER_MEDIUM;
|
|
break;
|
|
}
|
|
case 3: //LA_TenMeters:
|
|
{
|
|
locationAccurcy = Criteria.ACCURACY_HIGH;
|
|
locationPower = Criteria.POWER_MEDIUM;
|
|
break;
|
|
}
|
|
case 4: //LA_Best:
|
|
case 5: //LA_Navigation:
|
|
{
|
|
locationAccurcy = Criteria.ACCURACY_HIGH;
|
|
locationPower = Criteria.POWER_HIGH;
|
|
break;
|
|
}
|
|
default:
|
|
{
|
|
Log.debug("AndroidThunkJava_IsLocationAccuracyAvailable - calling with invalid Accuracy value: " + Accuracy + "\n");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
Criteria providerCriteria = new Criteria();
|
|
providerCriteria.setPowerRequirement(locationPower);
|
|
providerCriteria.setHorizontalAccuracy(locationAccurcy);
|
|
String providerName = locationManager.getBestProvider(providerCriteria, true);
|
|
|
|
return locationManager.isProviderEnabled(providerName);
|
|
}
|
|
|
|
public boolean AndroidThunkJava_IsLocationServiceEnabled()
|
|
{
|
|
try
|
|
{
|
|
LocationManager locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
|
|
if(locationManager != null)
|
|
{
|
|
//return true if either provider is available
|
|
return locationManager.isProviderEnabled(LocationManager.NETWORK_PROVIDER) || locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
|
|
}
|
|
}
|
|
catch(Exception e) //in older APIs, isProviderEnabled will throw an exception if false...
|
|
{
|
|
Log.debug("AndroidThunkJava_IsLocationServiceEnabled threw exception: " + e.getMessage());
|
|
e.printStackTrace();
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
public native void nativeHandleLocationChanged(long time, double longitude, double latitude, float accuracy, double altitude);
|
|
|
|
</insert>
|
|
</gameActivityClassAdditions>
|
|
|
|
</root>
|