@TargetApi(Build.VERSION_CODES.LOLLIPOP)
private void startScreenRecord(final Intent intent) {
if (DEBUG) Log.v(TAG, "Start screen recorder");
final int resultCode = intent.getIntExtra(EXTRA_RESULT_CODE, 0);
final MediaProjection projection = mMediaProjectionManager.getMediaProjection(resultCode, intent);
WindowManager window = (WindowManager) getSystemService(Context.WINDOW_SERVICE);
if (projection != null && window != null) {
_mediaProjection = projection;
final DisplayMetrics metrics = new DisplayMetrics();
window.getDefaultDisplay().getRealMetrics(metrics);
final int density = metrics.densityDpi;
HyperionGrabberOptions options = new HyperionGrabberOptions(mHorizontalLEDCount,
mVerticalLEDCount, mFrameRate, mSendAverageColor);
if (DEBUG) Log.v(TAG, "Starting the recorder");
mHyperionEncoder = new HyperionScreenEncoder(mHyperionThread.getReceiver(),
projection, metrics.widthPixels, metrics.heightPixels,
density, options);
mHyperionEncoder.sendStatus();
}
}