2014-09-20 1 views
0

저는 Google Cast SDK에 매우 익숙하며 캐스트 개발자 콘솔에 스타일 미디어 수신기가있는 앱을 등록했습니다. 내 아이디어는 안드로이드 응용 프로그램에서 이미지를 chromecast 장치로 보내는 것입니다. 몇 가지 예제를 시도해 보았습니다. 지금 내 자신의 코드를 작성하려고 시도했지만 다음은 장치를 발견하는 데 사용 된 코드 조각입니다. 하지만 작동하지 않는 것 같습니다. 매니페스트에서 올바른 권한을 설정했지만 어떤 이유로 액션 바에 표시 할 캐스트 버튼을 가져올 수 없습니다.캐스트 응용 프로그램 검색이 내 응용 프로그램 ID와 함께 작동하지 않습니다.

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    ActionBar actionBar = getSupportActionBar(); 
    actionBar.setBackgroundDrawable(new ColorDrawable(
      android.R.color.transparent)); 


    mMediaRouter = MediaRouter.getInstance(getApplicationContext()); 
    mMediaRouteSelector = new MediaRouteSelector.Builder() 
    //.addControlCategory(
    //CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID).build(); 

    .addControlCategory(
      CastMediaControlIntent.categoryForCast(getResources() 
        .getString(R.string.app_id))).build(); 

    mMediaRouterCallback = new MyMediaRouterCallback(); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 
    // Start media router discovery 
    mMediaRouter.addCallback(mMediaRouteSelector, mMediaRouterCallback, 
      MediaRouter.CALLBACK_FLAG_REQUEST_DISCOVERY); 
}  

@Override 
protected void onPause() { 
    if (isFinishing()) { 
     // End media router discovery 
     mMediaRouter.removeCallback(mMediaRouterCallback); 
    } 
    super.onPause(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    super.onCreateOptionsMenu(menu); 
    getMenuInflater().inflate(R.menu.main, menu); 
    MenuItem mediaRouteMenuItem = menu.findItem(R.id.media_route_menu_item); 
    MediaRouteActionProvider mediaRouteActionProvider = (MediaRouteActionProvider) MenuItemCompat 
      .getActionProvider(mediaRouteMenuItem); 
    // Set the MediaRouteActionProvider selector for device discovery. 
    mediaRouteActionProvider.setRouteSelector(mMediaRouteSelector); 
    return true; 
} 

답변

1

은 APPID가 전송 버튼을 볼 수 있습니다로 DEFAULT_MEDIA_RECEIVER_APPLICATION_ID를 사용하지만 사용하는 경우 자신의 AppID는, 그것은 캐스트 장치가 응용 프로그램에 대한 제대로 등록되지 않음을 의미하지 않습니다. 이 경우 개발자 콘솔에서 올바른 일련 번호가 사용되고 있는지 확인하고 크롬 케스트를 설정할 때 '일련 번호 전송 ...'확인란을 선택해야합니다. 이 모든 작업을 마친 후 새 구성을 선택할 수 있도록 chromecast를 재부팅하십시오.

+0

음, 모든 설정이 완료되었습니다. github의 다른 애플리케이션을 사용할 수 있습니다. –

+1

내 질문에 답하지 못했습니다. 앱 ID를 DEFAULT_MEDIA_RECEIVER_APPLICATION_ID (으)로 변경하고 다른 변경 사항 만 변경하면 작동합니까? –

+0

아니요. .addControlCategory ( \t \t CastMediaControlIntent.DEFAULT_MEDIA_RECEIVER_APPLICATION_ID) .build()를 추가하려고했습니다. 코드에서 작동하지만 나에게 도움이되지 않았다면 –