Respuestas:
Puede usar el parsemétodo estático deUri
Uri myUri = Uri.parse("http://stackoverflow.com")
Uriclase con un parsemétodo developer.android.com/reference/android/net/Uri.html . También hay una URIclase developer.android.com/reference/java/net/URI.html sin un parsemétodo. Entonces, la clase correcta para usar es Uri. Asegúrate de tener la importación correcta
createmé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.URIfallará 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());