This is question about running app on the TomTom device, not on an arbitrary Android device.
I have a random exception on production devices when attempting to start native Camera activity which I can't reproduce on my dev TomTom. This is specific to TomTom devices only; it doesn't happen on any other Androids my app is running on.
I don't do anything fancy here, just start a native camera Activity
for taking a picture with some URI, but randomly it crashes my app. I guess at least some TomTom devs should have experienced this issue with TomTom native Camera activity. Any help resolving this is highly appreciated.
My code is like this:
final Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
i.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
i.addFlags(FLAG_GRANT_WRITE_URI_PERMISSION);
final List<ResolveInfo> resInfoList = packageManager.queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY);
for (ResolveInfo resolveInfo : resInfoList)
{
String packageName = resolveInfo.activityInfo.packageName;
activity.grantUriPermission(packageName, photoURI, Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
}
activity.startActivityForResult(i, requestCode);
And exception stacktrace is like the following:
Fatal Exception: java.lang.RuntimeException: Surface was already locked at android.view.Surface.lockCanvas(Surface.java:242) at android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2421) at android.view.ViewRootImpl.draw(ViewRootImpl.java:2395) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2239) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1872) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) at android.view.Choreographer.doCallbacks(Choreographer.java:562) at android.view.Choreographer.doFrame(Choreographer.java:532) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) at android.os.Handler.handleCallback(Handler.java:730) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5150) at java.lang.reflect.Method.invokeNative(Method.java) at java.lang.reflect.Method.invoke(Method.java:525) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:760) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) at dalvik.system.NativeStart.main(NativeStart.java)