Russian Qt Forum
Апрель 18, 2024, 05:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Android. Как узнать gmail юзера?  (Прочитано 2035 раз)
sufferin-ollegator
Гость
« : Июль 31, 2015, 23:21 »

Доброго времени 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 исполняемого кода.....
Записан
Milaschjut
Гость
« Ответ #1 : Август 02, 2015, 10:18 »

В наше время давно никто не спорит о достоинствах и изъянах интернет-образования.
В настоящее время ведется выискивание <a href=http://vocational.detkambest.ru> новой модели подачи информации</a>.  Возможности, которые применяют интернет-ресурсы, функционирующие в данной области, — интернет, в частности видеообучение.
Мы приглашаем Вас в наш Центр дистанционного обучения!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.059 секунд. Запросов: 20.