Uber:如何获取用户最喜欢的位置以放置在深度链接 URI 中

Uber: how to obtain user's favorite locations to place in deeplinking URI

我目前正在制作一个应用程序,其中包含一项功能,用户只需单击一个按钮即可将 Uber 叫回家。我了解到深层链接可以解决问题。但是,我不太确定如何获得用户家的经纬度。非常感谢您对此事的帮助。祝你今天过得愉快。 显示的是获取用于深度链接的 uri 的方法。

 private String getUberUri() {
    StringBuilder uberUri = new StringBuilder("uber://?action=setPickup&client_id=LNC3kco5fh8RGBhJF9hJtqRKPSPCxMt-");
    uberUri.append("&pickup=my_location");
    uberUri.append("&dropoff[nickname]=").append(placeBundle.getString("NAME", "Dropoff"));
    uberUri.append("&dropoff[latitude]=").append(placeBundle.getDouble("PLACE_LAT"));
    uberUri.append("&dropoff[longitude]=").append(placeBundle.getDouble("PLACE_LNG"));

    return uberUri.toString();
}

这是按钮的 onClickListener:

Button uberButton = (Button) findViewById(R.id.uberButton);
    uberButton.setOnClickListener(
            new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    if (isPackageInstalled("com.ubercab")) {
                        Intent uberIntent = new Intent();
                        uberIntent.setData(Uri.parse(getUberUri()));
                        mActivity.startActivity(uberIntent);
                    } else {
                        Toast.makeText(mActivity, "Please install Uber", Toast.LENGTH_SHORT).show();
                        Uri uberPlayStoreUri = Uri.parse(
                                "https://play.google.com/store/apps/details?id=com.ubercab");
                        Intent uberIntent = new Intent(Intent.ACTION_VIEW, uberPlayStoreUri);
                        uberIntent.setPackage("com.android.vending");
                        mActivity.startActivity(uberIntent);
                    }
                }
            }
    );

有两个 Uber API 端点可用于设置和获取工作和家庭位置。

如果您想设置您的家庭或工作地址,您需要使用:"PUT /v1.2/places/{place_id}" 端点。其中 "place_id" 可以是家庭和工作。

要获取您需要使用的预定义位置:"GET /v1.2/places/{place_id}"

请求示例:

卷曲-H 'Authorization: Bearer '\ -H 'Accept-Language: en_US' \ -H 'Content-Type: application/json' \ 'https://api.uber.com/v1.2/places/work'

回复:

{ "address": "685 Market St, San Francisco, CA 94103, USA" }

唯一的限制是您需要解析地址以获得 "end_latitude" 和 "end_longitude"。

当您发出乘车请求时,还可以选择使用以下参数:

"start_place_id": "home", "end_place_id": "work"