Skip to content

Commit 285fd24

Browse files
authored
android: forces the startActivityForResult to run on the UI thread
1 parent 399a4b5 commit 285fd24

File tree

1 file changed

+14
-2
lines changed

1 file changed

+14
-2
lines changed

android/src/main/java/com/oney/WebRTCModule/GetUserMediaImpl.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import com.facebook.react.bridge.ReactApplicationContext;
1616
import com.facebook.react.bridge.ReadableArray;
1717
import com.facebook.react.bridge.ReadableMap;
18+
import com.facebook.react.bridge.UiThreadUtil;
1819
import com.facebook.react.bridge.WritableArray;
1920
import com.facebook.react.bridge.WritableMap;
2021

@@ -244,8 +245,19 @@ void getDisplayMedia(Promise promise) {
244245
MediaProjectionManager mediaProjectionManager =
245246
(MediaProjectionManager) currentActivity.getApplication().getSystemService(
246247
Context.MEDIA_PROJECTION_SERVICE);
247-
currentActivity.startActivityForResult(
248-
mediaProjectionManager.createScreenCaptureIntent(), PERMISSION_REQUEST_CODE);
248+
249+
if (mediaProjectionManager != null) {
250+
UiThreadUtil.runOnUiThread(new Runnable() {
251+
@Override
252+
public void run() {
253+
currentActivity.startActivityForResult(
254+
mediaProjectionManager.createScreenCaptureIntent(), PERMISSION_REQUEST_CODE);
255+
}
256+
});
257+
258+
} else {
259+
promise.reject(new RuntimeException("MediaProjectionManager is null."));
260+
}
249261
}
250262

251263
private void createScreenStream() {

0 commit comments

Comments
 (0)