Доброго времени cуток. Подскажите пожалуйста как узнать
gmail аккаунта на устройстве
android, если в проекте используется qml?
На данный момент приходит в голову юзать JNI.
итого.....
я пробую двумя вариантами уже нагугленными и не один из них не работает
по задумке метод
return_mail должен вернуть эмаил юзера.
код 1, который возвращает пустую строку
package org.qtproject.example;
import org.qtproject.qt5.android.QtNative;
import org.qtproject.qt5.android.bindings.QtApplication;
import org.qtproject.qt5.android.bindings.QtActivity;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.util.Patterns;
import java.util.regex.Pattern;
public class Android_info extends org.qtproject.qt5.android.bindings.QtActivity{
static String mail;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AccountManager manager = (AccountManager) getSystemService(ACCOUNT_SERVICE);
Account[] list = manager.getAccounts();
for (Account account : list) {
if (account.type.equalsIgnoreCase("com.google")) {
mail = account.name;
break;
}
}
}
public static String return_mail(){
return mail; // должен вернуться gmail аккаунта
}
}
код 2, который возвращает пустую строку
package org.qtproject.example;
import org.qtproject.qt5.android.QtNative;
import org.qtproject.qt5.android.bindings.QtApplication;
import org.qtproject.qt5.android.bindings.QtActivity;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.util.Patterns;
import java.util.regex.Pattern;
import android.content.Context;
public class Android_info extends org.qtproject.qt5.android.bindings.QtActivity{
static String mail;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Pattern emailPattern = Patterns.EMAIL_ADDRESS;
Account[] accounts = AccountManager.get(getApplicationContext()).getAccounts();
for (Account account : accounts) {
if (emailPattern.matcher(account.name).matches()) {
mail = account.name;
Log.e("mail: ",account.name);
}
}
}
public static String return_mail(){
return mail; // должен вернуться gmail аккаунта
}
}
если из метода
return_mail вернуть скажем, тестовую строчку: return
"mail
";
то приложение выводит в дэбаг : "mail" - значит связка
QML + C++ + Java успешно работает.
Остается вопрос на стороне java исполняемого кода.....