Я пытаюсь задокументировать соответствующие части моего собственного решения, на случай, если это кому-нибудь поможет. Пожалуйста, если вы видите какие-либо проблемы в этом, дайте мне знать (я только учусь).
Я не знал, что мог бы передать (ввести) "Context" в конструктор класса Java, который в этом нуждается, со стороны Unity. Я нашел это на этом форуме, спасибо форуму!
Сторона единства:
AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
AndroidJavaObject activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
AndroidJavaObject context = activity.Call<AndroidJavaObject>("getApplicationContext");
AndroidJavaObject jo = new AndroidJavaObject("com.my.package.MyDbHelper", context);
string word = jo.Call<string>("returnData");
tx.text = word;
Это передаст контекст в конструктор класса java студии Android, который затем инициализирует базу данных SQLite и вспомогательный класс, который будет манипулировать ею. Класс соответствующих данных, как, например, в Android Studio:
public class MySQLiteOpenHelper extends SQLiteOpenHelper {
// implement as documentation describes, link is provided bellow
}
// this is the class, addressed from Unity
public class MyDbHelper{
String str = null;
private SQLiteDatabase db;
MySQLiteOpenHelper mySQLiteOpenHelper;
public myDbHelper(Context context) {
mySQLiteOpenHelper = new mySQLiteOpenHelper(context);
db = mySQLiteOpenHelper.getWritableDatabase();
}
// this is the method that unity calls
public String returnData(){
return queryAndDisplayAll();
}
private String queryAndDisplayAll() {
// using Cursor and db perform query and get the result, say, in a str, and return it, that is like:
// Cursor cursor = db.query(DicSQLiteOpenHelper.TABLE_NAME,...
// str = ...result from Curson...
return (str == null ? "No result!" : str);
}
Здесь вы можете прочитать о SQLiteOpenHelper:
Ссылка на документацию по SQLiteOpenHelper.