如何使用GDK从谷歌玻璃获取联系人列表

时间:2014-05-08 10:54:27

标签: google-glass google-gdk google-mirror-api google-contacts

我正在实施Google Glass应用。

我想使用GDK从谷歌眼镜获取联系人列表。

我已经尝试过联系人Api v3(ContactsService)

但我失败了因为 -

我不能滚动&玻璃更新XE16后点击(单击)弹出(OK按钮)

- >跑到Android手机还可以。

我试过了 镜子api。设备OAuth .... - >没有例子..我不知道怎么......

如果你有示例代码,因为它也是上传。你会?我很感激。

这是我的代码。

public class MainActivity extends Activity
{
    private Account[] accounts;
    private AccountManager mManager;
    private ContactsService mService;
    private URL feedUrl;
    private final String url = "https://www.google.com/m8/feeds/contacts/default/full";
    private final String ACCOUNTS_TYPE = "com.google";
    private final String AUTH_TOKEN_TYPE = "cp";
    private String mToken;

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        mManager = AccountManager.get(this);
        accounts = mManager.getAccountsByType(ACCOUNTS_TYPE);

        Log.d("account", ""+accounts[0]);

        mManager.getAuthToken(accounts[0], AUTH_TOKEN_TYPE, null, this, new AccountManagerCallback<Bundle>()
        {
            public void run(AccountManagerFuture<Bundle> future)
            {
                try
                {
                    mToken = future.getResult().getString(AccountManager.KEY_AUTHTOKEN);
                    GetTask task = new GetTask();
                    task.execute(mToken);
                }

                catch (OperationCanceledException e)
                {
                    e.printStackTrace();
                }

                catch (AuthenticatorException e)
                {
                    e.printStackTrace();
                }

                catch (IOException e)
                {
                    e.printStackTrace();
                }
            }
        }, null);
    }

    public void createService(String token) throws IOException, ServiceException
    {
        mService = new ContactsService("contacts_list");
        mService.setUserToken(token);

        feedUrl = new URL(url);

        ContactFeed resultFeed = (ContactFeed)mService.getFeed(feedUrl, ContactFeed.class);
        for (ContactEntry entry : resultFeed.getEntries()) getContacts(entry);
    }

    private class GetTask extends AsyncTask<String, Void, Void>
    {
        @Override
        protected Void doInBackground(String... params)
        {
            try
            {
                String token = "";

                if(params != null)
                {
                    for(String s : params) token += s;
                }

                createService(token);
            }

            catch (ServiceException e)
            {
                e.printStackTrace();
            }

            catch (IOException e)
            {
                e.printStackTrace();
            }

            return null;
        }
    }

    public void getContacts(ContactEntry entry) throws ServiceException, IOException
    {
        if (entry.hasName())
        {
            Name name = entry.getName();

            if (name.hasFullName())
            {
                String fullName = name.getFullName().getValue();
                Log.d("name", fullName);
            }
    }

        else Log.d("name", "no name");

        if (entry.hasPhoneNumbers())
        {
            for (PhoneNumber phone : entry.getPhoneNumbers())
            {
                String phoneNum = phone.getPhoneNumber();
                Log.d("phone", phoneNum);
            }
        }

        else Log.d("phone", "no phone");

    }
}

0 个答案:

没有答案