Android Uber RidereRequestButtonCallback不';我没接到电话安卓

Android Uber RidereRequestButtonCallback不';我没接到电话安卓,android,callback,uber-api,Android,Callback,Uber Api,我正在Android应用程序中使用Uber RidereRequest按钮。我试图做的是加载特定产品id(UberGO)的骑乘信息,然后单击按钮(当前为View.Goe)以查看.VISIBLE,然后隐藏进度条 当产品id可用时,一切正常。在回调时,它会正确调用onrideinformationload()。问题是当产品ID不可用时。那么回调中的任何方法都不会被调用。为什么会这样?我仍然想显示该按钮,即使估计值不可用。它不应该调用其中一个错误方法吗 这是我的密码: RideParameters.B

我正在Android应用程序中使用Uber RidereRequest按钮。我试图做的是加载特定产品id(UberGO)的骑乘信息,然后单击按钮(当前为View.Goe)以查看.VISIBLE,然后隐藏进度条

当产品id可用时,一切正常。在回调时,它会正确调用
onrideinformationload()
。问题是当产品ID不可用时。那么回调中的任何方法都不会被调用。为什么会这样?我仍然想显示该按钮,即使估计值不可用。它不应该调用其中一个错误方法吗

这是我的密码:

RideParameters.Builder rpBuilder = new RideParameters.Builder()
            .setProductId("83941b0d-4be1-4979-a9c0-f0af5ee2b89b")
            .setDropoffLocation(latitude, longitude, dropOffName, dropOffAddress)
            .setPickupToMyLocation();
    requestButton.setRideParameters(rpBuilder.build());
    cabDialog.addView(requestButton);
    requestButton.setVisibility(View.GONE);

    requestButton.setSession(new ServerTokenSession(configuration));
    requestButton.setCallback(new RideRequestButtonCallback() {
        @Override
        public void onRideInformationLoaded() {
            Log.i("Ride Info Loaded", "This method is being called.");
            requestButton.setVisibility(View.VISIBLE);
            pbLoadingUber.setVisibility(View.GONE);
        }

        @Override
        public void onError(ApiError apiError) {
            requestButton.setVisibility(View.VISIBLE);
            pbLoadingUber.setVisibility(View.GONE);
            Log.w("Failed to Get Estimates", apiError.getClientErrors().get(0).getTitle());
        }

        @Override
        public void onError(Throwable throwable) {
            Log.w("Failed to Get Estimates", throwable);
            requestButton.setVisibility(View.VISIBLE);
            pbLoadingUber.setVisibility(View.GONE);
        }
    });
    requestButton.loadRideInformation();

问题出在哪里?我无法重现您的问题。如果查看最新的Android Git版本,如果产品id不存在,则会出现以下错误:

捕获此信息的方法是:

@Override
public void onError(ApiError apiError) {
    Toast.makeText(this, apiError.getClientErrors().get(0).getTitle(), Toast.LENGTH_LONG).show();
}
使用:RideRequestButtonCallback和@Override 3接口方法实现您的“活动”

因此,您的代码应该如下所示:

public class SampleActivity extends AppCompatActivity implements RideRequestButtonCallback {
...

@Override
protected void onCreate(Bundle savedInstanceState) {

configuration = new SessionConfiguration.Builder()
            .setRedirectUri(REDIRECT_URI)
            .setClientId(CLIENT_ID)
            .setServerToken(SERVER_TOKEN)
            .build();
ServerTokenSession session = new ServerTokenSession(configuration);

RideParameters.Builder rpBuilder = new RideParameters.Builder()
        .setProductId("83941b0d-4be1-4979-a9c0-f0af5ee2b89b")
        .setDropoffLocation(latitude, longitude, dropOffName, dropOffAddress)
        .setPickupToMyLocation();
requestButton.setRideParameters(rpBuilder.build());
requestButton.setSession(session);
requestButton.setCallback(this);
cabDialog.addView(requestButton);
requestButton.setVisibility(View.GONE);

}

@Override
public void onRideInformationLoaded() {
    Toast.makeText(this, "Estimates have been refreshed", Toast.LENGTH_LONG).show();
}

@Override
public void onError(ApiError apiError) {
    Toast.makeText(this, apiError.getClientErrors().get(0).getTitle(), Toast.LENGTH_LONG).show();
}

@Override
public void onError(Throwable throwable) {
    Log.e("SampleActivity", "Error obtaining Metadata", throwable);
    Toast.makeText(this, "Connection error", Toast.LENGTH_LONG).show();
}
}

我在DialogFragment中使用它——我们看不出SDK有任何问题——你需要检查你的代码。所以我在DialogFragment中实现了这些方法,没有一个被调用。对话框片段现在实现onRideRequestCallback,这三个方法是相同的。稍后将发布代码。我会尝试烤面包而不是原木