私のアプリケーションでは、www.youtube.com または m.youtube.com コンテンツを表示するために使用できる WebView があります。onLoadResource コールバックに次のコードがあります。
@Override
public void onLoadResource (WebView view, String url)
{
if(matchYouTubeWatchUrl(url))
{
invokeYouTubePlayer(m_context,url);
}
}
invokeYouTubePlayer 関数は次のようになります。
private static void invokeYouTubePlayer(Context c, String url)
{
try
{
Uri uri = Uri.parse(url);
String videoId = uri.getQueryParameter("v");
if(videoId != null)
{
Intent youtubeIntent = new Intent(Intent.ACTION_VIEW);
youtubeIntent.setData(Uri.parse("vnd.youtube://"+videoId));
try
{
c.startActivity(youtubeIntent);
}
catch(ActivityNotFoundException e)
{
Log.e(TAG,"No handler for native youtube - expanding scope");
// Try an alternate approach if there's no youtube app installed
youtubeIntent = new Intent(Intent.ACTION_VIEW);
youtubeIntent.setData(Uri.parse("http://www.youtube.com/watch?v="+videoId));
try
{
c.startActivity(youtubeIntent);
}
catch(ActivityNotFoundException e2)
{
e2.printStackTrace();
}
}
}
}
catch(NullPointerException e)
{
e.printStackTrace();
}
}
私が見つけたのは、ほとんどの Android デバイスで最初の startActivity 呼び出しが YouTube アプリケーションを呼び出すことですが、KF で見ているのは、ブラウザーを呼び出してからビデオ プレーヤー アプリケーションを呼び出すことです。
私が知りたいのはKFを持っていないことです.startActivityに渡すことができるURIがあるかどうかです.Kindle Fireでビデオプレーヤーを直接呼び出すことができます.中間ステップとしてブラウザを通過する必要はありません.