any body knows why this error occur, Media projections require a foreground service of type ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION on getMediaProjection() ev
Wrapping getMediaProjection(mResultCode, mResultData)
inside a Handler().postDelayed()
solved the problem for me.
override fun onServiceConnected(className: ComponentName, service: IBinder) {
// We've bound to LocalService, cast the IBinder and get LocalService instance
val binder = service as MediaProjectionService.LocalBinder
mediaProjectionService = binder.getService()
// delay needed because getMediaProjection() throws an error if it's called too soon
Handler().postDelayed({
mediaProjection = mediaProjectionManager.getMediaProjection(activityResultCode, activityData)
startStreaming()
serviceBound = true
}, 1000)
}