Risposte:
È possibile utilizzare il parsemetodo statico daUri
Uri myUri = Uri.parse("http://stackoverflow.com")
Uriclasse con un parsemetodo developer.android.com/reference/android/net/Uri.html . Esiste anche una URIclasse developer.android.com/reference/java/net/URI.html senza parsemetodo. Quindi la classe giusta da usare è Uri. Assicurati di avere l'importazione corretta
createmetodo. È semplice da usare come Uri. Quindi quale beneficio hai di Uri?
Se stai usando le estensioni Android di Kotlin e Kotlin, allora c'è un modo bellissimo di farlo.
val uri = myUriString.toUri()
Per aggiungere estensioni Kotlin ( KTX ) al progetto aggiungere quanto segue al build.gradle del modulo app
repositories {
google()
}
dependencies {
implementation 'androidx.core:core-ktx:1.0.0-rc01'
}
Puoi analizzare una stringa in un Uri usando Uri.parse () come mostrato di seguito:
Uri myUri = Uri.parse("http://stackoverflow.com");
Di seguito è riportato un esempio di come è possibile utilizzare l'Uri appena creato con un intento implicito. Da visualizzare in un browser sul telefono degli utenti.
// 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);
}
Che cosa hai intenzione di fare con l'URI?
Se ad esempio lo utilizzerai solo con un HttpGet, puoi semplicemente utilizzare la stringa direttamente durante la creazione dell'istanza di HttpGet.
HttpGet get = new HttpGet("http://stackoverflow.com");
android.widget.ImageView.setImageURIno - quindi è una domanda perfettamente valida.
Il parser di Java in java.net.URI non funzionerà se l'URI non è completamente codificato secondo i suoi standard. Ad esempio, provare per analizzare: http://www.google.com/search?q=cat|dog. Verrà generata un'eccezione per la barra verticale.
urllib semplifica la conversione di una stringa in a java.net.URI. Pre-elaborerà e sfuggirà all'URL.
assertEquals("http://www.google.com/search?q=cat%7Cdog",
Urls.createURI("http://www.google.com/search?q=cat|dog").toString());