Programmatically mirror screen from android device to TV -


my samsung device running kitkat(19) has "screen mirroring" option finds , syncs nearby compatible displays. implement feature programatically.

i have experimented both mediaroute , displaymanager classes. both succeed in detecting nearby displays, after manually turn on screen mirroring. them detect displays automatically. there i'm missing initiate scan or kick wifidisplaycontroller gear?

here implementation of mediarouter:

protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);     handler = new handler();     output = (textview) findviewbyid(r.id.output);     mmediarouter = mediarouter.getinstance(this);     mselector = new mediarouteselector.builder()           .addcontrolcategory(mediacontrolintent.category_live_video)           .addcontrolcategory(mediacontrolintent.category_remote_playback)           .build(); }  @override public void onresume() {     super.onresume();     mmediarouter.addcallback(mselector, mmrcallback,             mediarouter.callback_flag_perform_active_scan); }  @override public void onpause() {     super.onpause();     mmediarouter.removecallback(mmrcallback); }  protected void ondestroy() {     super.ondestroy(); }  private mediarouter.callback mmrcallback = new mediarouter.callback() {      @override     public void onrouteadded(mediarouter router, mediarouter.routeinfo route) {         super.onrouteadded(router, route);         string outputtext = router.getroutes().size() + " routes detected\n";         list routes = router.getroutes();         (int i=0;i<routes.size(); i++) {             outputtext = outputtext + routes.get(i) + "\n";         }         output.settext(outputtext);     }      @override     public void onrouteremoved(mediarouter router, mediarouter.routeinfo route) {         super.onrouteremoved(router, route);         output.settext("route removed: " + route + "\n"                 + router.getroutes().size() + " routes detected.");     }      @override     public void onprovideradded(mediarouter router, mediarouter.providerinfo provider) {         super.onprovideradded(router, provider);         string outputtext = router.getproviders().size() + " providers detected\n";         list providers = router.getproviders();         (int i=0;i<providers.size(); i++) {             outputtext = outputtext + providers.get(i) + "\n";         }         output.settext(outputtext);     }      @override     public void onproviderremoved(mediarouter router, mediarouter.providerinfo provider) {         super.onproviderremoved(router, provider);         output.settext("provider removed: " + provider + "\n"                 + router.getproviders().size() + " providers detected.");     }      @override     public void onproviderchanged(mediarouter router, mediarouter.providerinfo provider) {         super.onproviderchanged(router, provider);     } }; 

and here implementation of displaymanager:

@override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);     handler = new handler();     displaymanager = (displaymanager)  

getsystemservice(display_service); }

@override public void onresume() {     super.onresume();     displaymanager.registerdisplaylistener(displaylistener,handler);     displaymanager.getdisplays(); }  @override public void onpause() {     super.onpause();     displaymanager.unregisterdisplaylistener(displaylistener); }  private displaymanager.displaylistener displaylistener = new displaymanager.displaylistener() {     @override     public void ondisplayadded(int displayid) {         output.settext("display added: " + displayid);     }      @override     public void ondisplayremoved(int displayid) {         output.settext("display removed: " + displayid);      }      @override     public void ondisplaychanged(int displayid) {      } }; 

i hope you, done screen mirroring cast settings, uses device's cast service.

public void enablingwifidisplay() {     try {         startactivity(new intent("android.settings.wifi_display_settings"));         return;     } catch (activitynotfoundexception activitynotfoundexception) {         activitynotfoundexception.printstacktrace();     }      try {         startactivity(new intent("android.settings.cast_settings"));         return;     } catch (exception exception1) {         toast.maketext(getapplicationcontext(), "device not supported", toast.length_long).show();     } } 

Comments

Popular posts from this blog

node.js - How to mock a third-party api calls in the backend -

java - Could not locate OpenAL library -

Non Unique Username with ASP.Net Identity 2.0 -