gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-11-01 09:44:39 25 4
gpt4 key购买 nike

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

我想登录到他们的 api,并对我的用户进行身份验证,但是 - 当我调用 NeuraApiClient.authenticate(...) 时没有任何反应。

我关注了neura documentations ,但仍然没有任何反应。

这是我的代码:

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;
}
});
}
}

最佳答案

getAppPermissions 是异步调用,在 GetPermissionsRequestCallbacks 上获取数据。在 GetPermissionsRequestCallbacks 中,您正在启动正在使用身份验证方法的 mAuthenticateRequest。这意味着您必须等到 GetPermissionsRequestCallbacks 的 onSuccess 被调用,然后您才能调用

neuraApiClient.authenticate(100, mAuthenticateRequest);

基本上,如果您不等待获取 mAuthenticateRequest,则使用 mAuthenticateRequest = null 进行身份验证,并且 neuraApiClient.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);
}
});
}
...
});
}

关于android - 使用 Neura 构建 android 项目时收到错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38553382/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com