Respuestas:
Puede usar el parse
método estático deUri
Uri myUri = Uri.parse("http://stackoverflow.com")
Uri
clase con un parse
método developer.android.com/reference/android/net/Uri.html . También hay una URI
clase developer.android.com/reference/java/net/URI.html sin un parse
método. Entonces, la clase correcta para usar es Uri
. Asegúrate de tener la importación correcta
create
método. Es tan simple de usar como Uri. Entonces, ¿qué beneficio tienes de Uri?
Si está utilizando las extensiones de Android Kotlin y Kotlin, entonces hay una hermosa manera de hacerlo.
val uri = myUriString.toUri()
Para agregar extensiones de Kotlin ( KTX ) a su proyecto, agregue lo siguiente al build.gradle de su módulo de aplicación
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:1.0.0-rc01'
}
Puede analizar una cadena a un Uri utilizando Uri.parse () como se muestra a continuación:
Uri myUri = Uri.parse("http://stackoverflow.com");
El siguiente es un ejemplo de cómo puede usar su Uri recién creado en una intención implícita. Para ser visto en un navegador en el teléfono del usuario.
// Creates a new Implicit Intent, passing in our Uri as the second paramater.
Intent webIntent = new Intent(Intent.ACTION_VIEW, myUri);
// Checks to see if there is an Activity capable of handling the intent
if (webIntent.resolveActivity(getPackageManager()) != null){
startActivity(webIntent);
}
¿Qué vas a hacer con el URI?
Si solo va a usarlo con un HttpGet, por ejemplo, puede usar la cadena directamente al crear la instancia de HttpGet.
HttpGet get = new HttpGet("http://stackoverflow.com");
android.widget.ImageView.setImageURI
, no lo hará, por lo que es una pregunta perfectamente válida.
El analizador de Java java.net.URI
fallará si el URI no está completamente codificado según sus estándares. Por ejemplo, trate de analizar: http://www.google.com/search?q=cat|dog
. Se lanzará una excepción para la barra vertical.
urllib facilita la conversión de una cadena a a java.net.URI
. Preprocesará y escapará de la URL.
assertEquals("http://www.google.com/search?q=cat%7Cdog",
Urls.createURI("http://www.google.com/search?q=cat|dog").toString());