Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在活动外部调用chromecast媒体路由器_Java_Android_Chromecast - Fatal编程技术网

Java 在活动外部调用chromecast媒体路由器

Java 在活动外部调用chromecast媒体路由器,java,android,chromecast,Java,Android,Chromecast,我将Chromecast sdk公开给一个可以在react native中使用的库 所以,当我跑步的时候 VideoCastManager.initialize(mCurrentActivity, options); mCastManager = VideoCastManager.getInstance(); mCastManager.startCastDiscovery(); 在主要活动中,它非常有效。但是如果我是在课堂上做的,它会崩溃 java.lang.IllegalStateExcep

我将Chromecast sdk公开给一个可以在react native中使用的库

所以,当我跑步的时候

VideoCastManager.initialize(mCurrentActivity, options);
mCastManager = VideoCastManager.getInstance();
mCastManager.startCastDiscovery();
在主要活动中,它非常有效。但是如果我是在课堂上做的,它会崩溃

java.lang.IllegalStateException:媒体路由器服务只能是 在应用程序的主线程上访问

但是我需要一种在活动外部调用startDiscovery方法的方法,因为它将从另一个操作调用,如果它发现chromecast与否,它将进行广播


有没有办法做到这一点?

例外是关于主线程和工作线程;你是在工作线程上调用它吗?如果是这样,您应该做一些更改,以便在应用程序的主线程上调用它。

您有什么类型的上下文?@AliNaddaf它来自类型ReactApplicationContextI我不熟悉React,所以是应用程序、活动、服务、广播,。。。上下文?@AliNaddaf看起来像是一个服务。我可以在这里使用活动,但即使我使用VideoCastManager.initialize(mCurrentActivity.getBaseContext(),options);我收到相同的错误消息,只要它是一个主/UI线程,就可以了