在Android应用程序上集成uber API(深度链接)

在Android应用程序上集成uber API(深度链接),android,android-intent,deep-linking,uber-api,Android,Android Intent,Deep Linking,Uber Api,嗨,我想在我的应用程序上集成Ride和uber按钮。我提出了获取参数的请求 'server_token': 'ma***********************u', 'start_latitude', 'start_longitude', 'end_latitude' 'end_longitude'. 我得到了回应: { "result": { "prices": [ { "currency_code": "INR", "display_name": "u

嗨,我想在我的应用程序上集成Ride和uber按钮。我提出了获取参数的请求

'server_token': 'ma***********************u',
'start_latitude',
'start_longitude',
'end_latitude' 
'end_longitude'. 
我得到了回应:

{
 "result": {
 "prices": [
    {
     "currency_code": "INR",
     "display_name": "uberGO",
    "distance": 18.45,
    "duration": 3503,
    "estimate": "₹559-720",
    "high_estimate": 720,
    "localized_display_name": "uberGO",
    "low_estimate": 559,
    "minimum": 60,
    "product_id": "c8170d76-b67c-44b1-8c26-5f45541434d2",
    "surge_multiplier": 2
  },
  {
    "currency_code": "INR",
    "display_name": "uberGO",
    "distance": 18.45,
    "duration": 3503,
    "estimate": "₹559-719",
    "high_estimate": 719,
    "localized_display_name": "uberGO",
    "low_estimate": 559,
    "minimum": 60,
    "product_id": "bc46ccfe-de64-4cad-b63a-7cf48e649a3e",
    "surge_multiplier": 2
  },
  {
    "currency_code": "INR",
    "display_name": "uberX",
    "distance": 18.45,
    "duration": 3503,
    "estimate": "₹834-1,069",
    "high_estimate": 1069,
    "localized_display_name": "uberX",
    "low_estimate": 834,
    "minimum": 80,
    "product_id": "4da6a747-e0be-4f56-a3c7-3f30f22bf86d",
    "surge_multiplier": 2.4
  },
  {
    "currency_code": "INR",
    "display_name": "uberGO",
    "distance": 18.45,
    "duration": 3503,
    "estimate": "₹834-1,069",
    "high_estimate": 1069,
    "localized_display_name": "uberGO",
    "low_estimate": 834,
    "minimum": 80,
    "product_id": "18656d0e-cc1b-4aa6-8146-92e605626caa",
    "surge_multiplier": 2.4
  },
  {
    "currency_code": "INR",
    "display_name": "uberXL",
    "distance": 18.45,
    "duration": 3503,
    "estimate": "₹1,646-2,099",
    "high_estimate": 2099,
    "localized_display_name": "uberXL",
    "low_estimate": 1646,
    "minimum": 125,
    "product_id": "2ea18da2-bcf0-4df7-a7b8-a827e9945322",
    "surge_multiplier": 3.4
  },
  {
    "currency_code": "INR",
    "display_name": "uberXL",
    "distance": 18.45,
    "duration": 3503,
    "estimate": "₹1,646-2,099",
    "high_estimate": 2099,
    "localized_display_name": "uberXL",
    "low_estimate": 1646,
    "minimum": 125,
    "product_id": "a4404842-e40a-471b-a7a5-13da3551e94f",
    "surge_multiplier": 3.4
    }
  ]
 }
}
现在,我在按钮的onclicklisteners上添加了以下代码:

String uri = "uber://?client_id=eFrzgz_2Du2KYUXIi3MKaNOWtxo3i77K&action=setPickup&pickup[latitude]=37.775818&pickup[longitude]=-122.418028&pickup[nickname]=UberHQ&pickup[formatted_address]=1455%20Market%20St%2C%20San%20Francisco%2C%20CA%2094103&dropoff[latitude]=37.802374&dropoff[longitude]=-122.405818&dropoff[nickname]=Coit%20Tower&dropoff[formatted_address]=1%20Telegraph%20Hill%20Blvd%2C%20San%20Francisco%2C%20CA%2094133&product_id=a1111c8c-c720-46c3-8534-2fcdd730040d";
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(uri));
startActivity(intent); 

单击这些按钮后,it按钮将重定向到具有正确src和dst的uber应用程序,但它不会选择正确的uber类别,如UberX、UberGo、UberL等。它始终选择默认类别。如何将其自定义到用户只需单击一个按钮即可预订驾驶室的级别

uber rides sdk for Android中的深度链接测试使用的参数与您发送的意图显示的参数相同,因此应该可以正常工作

优步:?action=setPickup&client\u id=clientId&product\u id=productId&pickup%5b纬度%5D=32.1234&pickup%5b经度%5D=-122.3456&pickup%5b昵称%5D=pickupNick&pickup%5b格式化的_地址%5D=pickup%20地址和下车%5b纬度%5D=32.5678&下车%5b经度%5D=-122.6789&下车%5b昵称%5D=pickupNick&下车%5b格式化的下车%5b地址%5D=下车%20Addres

在测试数据中,我看到它们也包含键和值(例如拾取%5b纬度%5D=32.1234),但在测试数据中,它们不包含键和值。
尝试对数据URI进行编码,然后重试

也许你将意向发送到优步应用程序太迟了?也就是说,在服务器上不再存在产品id(Uber汽车)之后,Uber应用程序也不会选择它

这些产品是从生产API端点返回的还是从生产API端点返回的


您是否可以首先通过向发出请求来验证产品id,并确保在响应正文中获得200 OK HTTP响应状态代码和正确的产品详细信息?

在我的案例中工作完全正常您做了什么?你能和我分享你的密码吗?我什么都没做