如果您在Android瀏覽器中打開一個mp3網址,您會看到一個「完成操作使用...」對話窗口,提供兩個選項:「音樂播放器」或「瀏覽器」。如果您選擇「瀏覽器」,它會將mp3下載到設備。Android:「完整操作使用...」在自定義WebView上運行ACTION_VIEW意圖上的一個mp3網址
我試圖從我的應用程序內實現相同。 我使用帶有setWebViewClient的WebView到具有shouldOverrideUrlLoading方法的WebViewClient類(如所有示例中所示)。該方法在mp3 url上使用ACTION_VIEW intent來檢查「mp3」擴展和startActivity(intent)。
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
String lowcaseurl = url.toLowerCase();
if (lowcaseurl.endsWith(".mp3")) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
view.getContext().startActivity(intent);
return true;
}
else {
view.loadUrl(url);
}
return super.shouldOverrideUrlLoading(view, url)
}
這不顯示「完成操作:使用」對話窗口 - 但,如果讓我選擇「瀏覽器」,然後打開瀏覽器,但沒有得到URL!它只是打開瀏覽器,並進入默認的「主頁網址」(這是google.com在這種情況下)...
任何幫助將不勝感激。
顯示你正在使用的意圖的代碼? – Femi 2011-05-22 16:22:18
我編輯並添加了一段代碼,它代表了我代碼中的相關部分... – 2011-05-23 10:11:55
我相信[this](http://code.google.com/p/android/issues/detail?id=15673)描述了「幕後」出現這種情況的原因,但我還沒有找到解決方案,並且仍在嘗試......:\「 – 2011-05-24 22:01:55