2012-05-09 2 views
0

내 응용 프로그램에는 www.youtube.com 또는 m.youtube.com 콘텐츠를 표시하는 데 사용할 수있는 WebView가 있습니다. 나는 onLoadResource 콜백에 다음 코드를 가지고 :WebView에서 직접 Kindle Fire에서 비디오 플레이어 응용 프로그램 호출

@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(); 
    }   
} 

내가 찾는거야 대부분의 안드로이드 장치의 첫 번째 startActivity를 호출이를 호출하는 것입니다 그러나 YouTube 응용 프로그램, KF에서 나는 비디오 플레이어 응용 프로그램을 호출하는 브라우저를 호출한다는 것을 알고 있습니다.

KF 자신이 없으면 중간 단계로 브라우저를 통과하지 않고도 Kindle Fire에서 비디오 플레이어를 직접 호출하는 startActivity에 전달할 수있는 URI가 있는지 여부를 확인하고 싶습니다.

답변

1

그냥 관찰. 의도는 그것이 두 번째 발사 후 KF가 임무를 수행하고 YouTube 앱으로 이동 한 후 첫 번째 활동을 터지지 않 좋아

private boolean isCallable(Intent intent) { 
     List<ResolveInfo> list = getPackageManager().queryIntentActivities(intent, 
      PackageManager.MATCH_DEFAULT_ONLY); 
     return list.size() > 0; 
} 

그냥 KF에 명확하게 호출 할 수 있는지 감지 할 수있는 더 좋은 방법이있다.

이 경우 내가 생각할 수있는 모든 처음 의도에 세부 사항이 정확하지 않거나

+0

큰 덕분에이 코드 샘플에 대한 다른 휴대 전화/탭으로 KF에 대한 동일하지 않습니다 것입니다. 네, KF의 문제는 그 의도가 내장 된 유튜브 앱을 가진 다른 안드로이드 장치와 다르다는 것입니다. – Lee

+0

당신이 시도해 볼 수있는 것은 플러그 접속 식이며 logcat을보고 youtube 응용 프로그램을 클릭 할 때 무엇이 ​​불려지는지 확인하십시오 ... – Pintac

+0

그래도 그 중 하나가 있다면 할 수있는 일입니다. 불행하게도 나는 액세스 할 수있는 logcat에 정보가 없습니다. – Lee