TLDR: huge app, no easy way to explain how it works, let alone how to alter or export this data.
The Question
Looking at all the references you've added to the question I can only assume you've done quite some research already. Honestly it seems like that is the best approach to find a documented way to merge Samsung specific data into your workspace.
I don't have any personal experience using the Samsung Gallery app. I do have som general remarks that might (or might not) help you in this Quest.
The Problem(s)
To start with it's a huge app with a ton of features, requirements, permissions, dependencies... so it's likely:
- not very easy to simplify
- not openly documented
Also be aware that there will be multiple versions of this app around. Looking at apk mirror websites I've seen major version 14. Plus not all Samsung devices might support the latest version. Plus internally they could simply change the implementation w/o warnings since it's not a public API to begin with.
A (very) Quick Look in Code
All that said I briefly looked at code. This is only to give an insight on how it works. By far a solution since this doesn't reveal any public API one could use.
If you want to do so yourself you can extract the apk from your device or find other sources for a specific apk version and then look for the right tools to look into its content. Don't trust any archive downloaded from The Internet though, especially not when it states it's scanned and safe ;-).
This is what I found (and what matches what I would expect to find).
package com.samsung.android.gallery.module.tag;
This is just where it's internally located, this specific part of code that might be related to how tags are added to pictures.
import android.database.Cursor;
import android.util.LongSparseArray;
import com.samsung.android.gallery.module.dal.abstraction.query.QueryParams;
import java.lang.String;
import java.util.ArrayList;
These are some imports of dependencies, the first and third stand out to me since the first indicates the use of a database system on the device. So meta tag data is highly likely stored on the device in a proprietary format.
The third import shows there is module abbreviated DAL
standing for Data Access Layer
and that it uses QueryParams
to retrieve meta tags you're looking for from the dataset.
public class UserTagManager extends Object {
@dalvik.annotation.Signature
private static LongSparseArray mTagListMap;
static void <clinit>() { ... }
public static void a(long, QueryParams) { ... }
@dalvik.annotation.Signature
public static void addTagData(long, ArrayList) { ... }
@dalvik.annotation.Signature
public static void addTagData(ArrayList, String) { ... }
@dalvik.annotation.Signature
private static ArrayList getTagList(long) { ... }
private static void lambda$loadInternal$1(long, QueryParams) { ... }
@dalvik.annotation.Signature
private static ArrayList loadInternal(long) { ... }
@dalvik.annotation.Signature
private static ArrayList loadTagList(Cursor) { ... }
public static void removeAllData(long) { ... }
}
This doesn't add much info to be honest. The public
methods are those that could be exposed through an API. Honestly Samsung doesn't have any benefit at this point (that I see) to expose this so I wouldn't expect to find much more.
Even here all I see is a way to addTagData
and a way to removeAllData
.
Conclusion
At this point you could dig deeper into code but I wouldn't recommend spending time on that. You'll probably have more luck contacting Samsung asking for ways to achieve your goal.