优步:如何获取用户最喜欢的位置以放置深层链接URI

时间:2017-11-14 01:52:39

标签: android uber-api

我目前正在开发一款应用程序,其中包含一项功能,让用户只需点击一下按钮就可以带回家。我了解到深层链接可以解决问题。但是,我不太确定如何获得用户家的经纬度。非常感谢您对此事的帮助。祝你今天愉快。 显示的是获取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();
}

这是Button的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);
                    }
                }
            }
    );

1 个答案:

答案 0 :(得分:1)

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

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

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

示例请求:

卷曲-H'授权:持票人' \      -H'接受语言:en_US' \      -H'内容类型:application / json' \      ' https://api.uber.com/v1.2/places/work'

响应:

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

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

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

" start_place_id":" home", " end_place_id":"工作"