2014-11-06 75 views
0

我想为使用Azure移动服务及其身份验证提供程序的Android应用程序添加身份验证。我正在使用移动服务1.1.5 jar和我的Android项目目标API 19。无法使用谷歌Oauth与Android应用程序中的Azure移动服务

的方法,登录(MobileServiceAuthenticationProvider,的JSONObject, UserAuthenticationCallback)是不明确的类型 MobileServiceClient

这是我的代码

private void authenticate() { // Login using the Google provider. 

    ListenableFuture<MobileServiceUser> mLogin = mClient.login(null, null, null); 

    Futures.addCallback(mLogin, new FutureCallback<MobileServiceUser>() { 
     @Override 
     public void onFailure(Throwable exc) { 
      createAndShowDialog((Exception) exc, "Error"); 
     }   
     @Override 
     public void onSuccess(MobileServiceUser user) { 
      createAndShowDialog(String.format(
        "You are now logged in - %1$2s", 
        user.getUserId()), "Success"); 
      createTable(); 
     } 
    });  

    } 

回答

1

ListenableFuture重载在SDK 1.1.5中不可用。您将需要版本2.0.1测试版SDK。 Azure team blog提供了一个概述和下载此版本的链接。

此外,login()的新重载不需要三个参数。您将需要传入提供程序,该提供程序可以是字符串,也可以是MobileServiceAuthenticationProvider对象。或者,您也可以传递一个令牌,它可以是字符串,也可以是JsonObject。

如果你的目标是使用谷歌的认证,我希望你会调用如下

ListenableFuture<MobileServiceUser> mLogin = mClient.login("google"); 

如果它是有用的,但source for the beta SDK可用。

或者,您可以继续使用1.1.5 SDK,但如果您希望对结果采取措施,则可能需要提供UserAuthenticationCallback对象。这将是login()的一个附加可选参数。

相关问题