使用Neura构建android项目时接收错误

使用Neura构建android项目时接收错误,android,neura,Android,Neura,为了检测用户的当前数据(他/她在哪里,10分钟前他们在哪里等),我正在使用 我想登录到他们的api,并验证我的用户,但是-当我调用neuraapclient.authenticate(…)时,什么都不会发生 我跟着,但还是什么也没发生 这是我的密码: public class MainActivity extends AppCompatActivity { private ArrayList<Permission> mPermissions; private Aut

为了检测用户的当前数据(他/她在哪里,10分钟前他们在哪里等),我正在使用

我想登录到他们的api,并验证我的用户,但是-当我调用neuraapclient.authenticate(…)时,什么都不会发生

我跟着,但还是什么也没发生

这是我的密码:

public class MainActivity extends AppCompatActivity {

    private ArrayList<Permission> mPermissions;
    private AuthenticationRequest mAuthenticateRequest;

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

        Builder builder = new Builder(this);  
        NeuraApiClient neuraApiClient = builder.build();     
        neuraApiClient.setAppUid(getResources().getString(R.string.app_uid));        
        neuraApiClient.setAppSecret(getResources().getString(R.string.app_secret));  
        neuraApiClient.connect();    

        fetchPermissions(neuraApiClient);
        neuraApiClient.authenticate(100, mAuthenticateRequest);
    }

    private void fetchPermissions(final NeuraApiClient client) {
        client.getAppPermissions(new GetPermissionsRequestCallbacks() {
            @Override
            public void onSuccess(final List<Permission> permissions) throws RemoteException {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mPermissions = new ArrayList<>(permissions);
                        mAuthenticateRequest = new AuthenticationRequest();
                        mAuthenticateRequest.setAppId(client.getAppUid());
                        mAuthenticateRequest.setAppSecret(client.getAppSecret());
                        mAuthenticateRequest.setPermissions(mPermissions);
                    }
                });
            }

            @Override
            public void onFailure(Bundle resultData, int errorCode) throws RemoteException {
            }

            @Override
            public IBinder asBinder() {
                return null;
            }
        });
    }
} 
public类MainActivity扩展了AppCompatActivity{
私人律师事务所;
私有身份验证请求mAuthenticateRequest;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
建筑商=新建筑商(本);
neuraapclient neuraapclient=builder.build();
neuraapclient.setAppUid(getResources().getString(R.string.app_uid));
neuraApiClient.setAppSecret(getResources().getString(R.string.app_secret));
neuraApiClient.connect();
获取权限(NeuraAppClient);
neuraApiClient.authenticate(100,mAuthenticateRequest);
}
私有权限(最终NeuraAppClient客户端){
client.getAppPermissions(新的GetPermissionsRequestCallbacks(){
@凌驾
public void onSuccess(最终列表权限)引发RemoteException{
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
mPermissions=newarraylist(权限);
mAuthenticateRequest=新的身份验证请求();
mAuthenticateRequest.setAppId(client.getAppUid());
mAuthenticateRequest.setAppSecret(client.getAppSecret());
mAuthenticateRequest.setPermissions(mPermissions);
}
});
}
@凌驾
public void onFailure(Bundle resultData,int errorCode)引发RemoteException{
}
@凌驾
公共IBinder asBinder(){
返回null;
}
});
}
} 

getAppPermissions是一个异步调用,在GetPermissionsRequestCallbacks上获取数据。 在GetPermissionsRequestCallbacks中,您正在启动使用authenticate方法的mAuthenticateRequest。 这意味着您必须等待GetPermissionsRequestCallbacks调用成功,然后才能调用

neuraApiClient.authenticate(100, mAuthenticateRequest);
基本上,如果您不等待获取mAuthenticateRequest,则使用mAuthenticateRequest=null进行身份验证,NeuraAppClient.authenticate(..)将失败

您可以这样做:在收到结果时调用authenticate-

private void fetchPermissions(final NeuraApiClient client) {
        client.getAppPermissions(new GetPermissionsRequestCallbacks() {
            @Override
            public void onSuccess(final List<Permission> permissions) throws RemoteException {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mPermissions = new ArrayList<>(permissions);
                        mAuthenticateRequest = new AuthenticationRequest();
                        mAuthenticateRequest.setAppId(client.getAppUid());
                        mAuthenticateRequest.setAppSecret(client.getAppSecret());
                        mAuthenticateRequest.setPermissions(mPermissions);

                        client.authenticate(100, mAuthenticateRequest);
                    }
                });
            }
            ...
        });
    }
private void fetchPermissions(最终NeuraAppClient客户端){
client.getAppPermissions(新的GetPermissionsRequestCallbacks(){
@凌驾
public void onSuccess(最终列表权限)引发RemoteException{
runOnUiThread(新的Runnable(){
@凌驾
公开募捐{
mPermissions=newarraylist(权限);
mAuthenticateRequest=新的身份验证请求();
mAuthenticateRequest.setAppId(client.getAppUid());
mAuthenticateRequest.setAppSecret(client.getAppSecret());
mAuthenticateRequest.setPermissions(mPermissions);
客户端身份验证(100,mAuthenticateRequest);
}
});
}
...
});
}