Cómo escuchar un URI personalizado

Estoy trabajando en una aplicación que tiene su propio prefijo URI. (dchub: // en este caso)

Buscando por todas partes y leyendo mucho pero me confundí un poco.

¿Es posible iniciar mi aplicación cuando alguien hace clic en un enlace que comienza con dchub:// en el navegador?

Hasta ahora he encontrado muchos ejemplos al abrir el navegador de tu aplicación, pero eso no es lo que estoy buscando.

Actualizar

Muchas gracias, pensé que, ahora estoy un poco atrapado en la siguiente parte.

 Uri data = getIntent().getData(); if (data.equals(null)) { } else { String scheme = data.getScheme(); String host = data.getHost(); int port = data.getPort(); } 

nullpointerexception algunas nullpointerexception si inicio la aplicación normalmente, funciona bien si abro desde la página web. Así que pensé, permitamos incluir algún control para el valor nulo, pero eso no lo resolvió. ¿Alguna sugerencia de cómo puedo iniciar la aplicación simplemente seleccionándola?

Para registrar un protocolo en su aplicación de Android, agregue un bloque adicional a AndroidManifest.xml.

             

No use data.equals (null). Eso está destinado a fallar, no puede llamar a métodos en un objeto nulo, de ahí el NPE.

¿Por qué el bloque de código emtpy? En mi opinión, esto es mucho más bonito:

 if(data != null){ // code here } 

Prueba este código:

 try { Uri data = getIntent().getData(); if (data.equals(null)) { } else { String scheme = data.getScheme(); String host = data.getHost(); int port = data.getPort(); //type what u want tv.setText("any thing"); } } catch (NullPointerException e) { // TODO: handle exception tv.setText("Null"); }