Android-приложение Uber с глубокими ссылками

Приложение Uber открыто, но место посадки и высадки не указано в соответствующих полях. Код и uri можно получить с https://developer.uber.com/docs/riders/ride-requests/tutorials/deep-links/introduction#android client_id мой собственный.

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    try {
        PackageManager pm = this.getPackageManager();
        pm.getPackageInfo("com.ubercab", PackageManager.GET_ACTIVITIES);

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

    } catch (PackageManager.NameNotFoundException e) {
        // No Uber app! Open mobile website.
    }
}
}

person icebail    schedule 22.12.2016    source источник
comment
Попробуйте универсальные ссылки, которые перенаправят вас в приложение Uber.   -  person Qamar    schedule 22.12.2016


Ответы (1)


Необходимо применить кодировку URL для строк. Для образца:

String uri = "uber://?client_id=eFrzgz_2Du2KYUXIi3MKaNOWtxo3i77K&action=setPickup&pickup[latitude]=37.775818&pickup[longitude]=-122.418028&pickup[nickname]=UberHQ&pickup[formatted_address]="+ URLEncoder.encode("1455 Market St, San Francisco, CA 94103", "UTF-8")+"&dropoff[latitude]=37.802374&dropoff[longitude]=-122.405818&dropoff[nickname]=Coit+Tower&dropoff[formatted_address]="+URLEncoder.encode("1 Telegraph Hill Blvd, San Francisco, CA+94133", "UTF-8")+"&product_id=a1111c8c-c720-46c3-8534-2fcdd730040d";
person icebail    schedule 26.12.2016