如何解决我的应用:Android 10屏幕录像机不再工作
自Android 10起,我无法保存所谓的启动画面活动中的视频输出。
基本上,您可以定义文本,速度,大小和颜色。
未选中视频复选框时,一切正常。在Android 10上,仅在屏幕上简单地显示文本行就不成问题。一旦激活了视频并授予了权限,通过按下屏幕录像机对话框中的接受按钮,视频就会崩溃。
minSDK:16
maxsdk:30
我收到前台服务的消息,但不知道如何实现。有人可以帮助我,告诉我正确的职位以及我必须更改的内容吗?
我目前的错误:
onActivityResult:387,Splashscreen (stutz.com.flash_text)
dispatchActivityResult:8110,Activity (android.app)
deliverResults:4838,ActivityThread (android.app)
handleSendResult:4886,ActivityThread (android.app)
execute:51,ActivityResultItem (android.app.servertransaction)
executeCallbacks:135,TransactionExecutor (android.app.servertransaction)
execute:95,TransactionExecutor (android.app.servertransaction)
handleMessage:2016,ActivityThread$H (android.app)
dispatchMessage:107,Handler (android.os)
loop:214,Looper (android.os)
main:7356,ActivityThread (android.app)
invoke:-1,Method (java.lang.reflect)
run:492,RuntimeInit$MethodAndArgsCaller (com.android.internal.os)
main:930,ZygoteInit (com.android.internal.os)
我的相关代码如下:
清单:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
<activity android:name=".Splashscreen"
android:theme="@style/NoTheme"
android:screenorientation="sensorLandscape"/>
<service
android:name=".Splashscreen"
android:enabled="true"
android:foregroundServiceType="mediaProjection"
android:exported="true"/>
Permission.java:
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import androidx.core.app.ActivityCompat;
public class Function {
public static boolean hasPermissions(Context context,String... permissions) {
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && context != null && permissions != null) {
for (String permission : permissions) {
if (ActivityCompat.checkSelfPermission(context,permission) != PackageManager.PERMISSION_GRANTED) {
return false;
}
}
}
return true;
}
}
定义值后MainActivity调用:
private void openSplash() {
Intent splash = new Intent(this,Splashscreen.class);
splash.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(splash);
}
splashscreen.java:
来自mainactivity的值在splashscreen.java中启动:
import static stutz.com.flash_text.MainActivity.bgcolor;
import static stutz.com.flash_text.MainActivity.textcontent1;
import static stutz.com.flash_text.MainActivity.textcontent2;
import static stutz.com.flash_text.MainActivity.textcontent3;
import static stutz.com.flash_text.MainActivity.speed;
import static stutz.com.flash_text.MainActivity.color;
import static stutz.com.flash_text.MainActivity.loop;
import static stutz.com.flash_text.MainActivity.video;
import static stutz.com.flash_text.MainActivity.quality;
import static stutz.com.flash_text.MainActivity.textsizefloat;
public class Splashscreen extends AppCompatActivity {
private static final String TAG = "Splashscreen";
private static final int REQUEST_CODE = 1000;
private static final int REQUEST_PERMISSION_KEY = 1;
private int mScreenDensity;
private mediaprojectionmanager mProjectionManager;
private static int disPLAY_WIDTH;
private static int disPLAY_HEIGHT;
private MediaProjection mMediaProjection;
private Virtualdisplay mVirtualdisplay;
private MediaProjectionCallback mMediaProjectionCallback;
private MediaRecorder mMediaRecorder;
private static final SparseIntArray ORIENTATIONS = new SparseIntArray();
private boolean isRecording = false;
public static boolean sharefilecheck;
public static Uri shareuri;
// Permission Array
private final String[] PERMISSIONS = {
Manifest.permission.WRITE_EXTERNAL_STORAGE,Manifest.permission.READ_EXTERNAL_STORAGE
};
// Rotation Array
static {
ORIENTATIONS.append(Surface.ROTATION_0,90);
ORIENTATIONS.append(Surface.ROTATION_90,0);
ORIENTATIONS.append(Surface.ROTATION_180,270);
ORIENTATIONS.append(Surface.ROTATION_270,180);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splashscreen);
// Set fullscreen and screen always on
getwindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getwindow().getDecorView().setsystemUIVisibility(View.SYstem_UI_FLAG_FULLSCREEN);
getwindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);
getwindow().getDecorView().setBackgroundColor(Color.parseColor(bgcolor));
if (video && Build.VERSION.SDK_INT >= 21 && Function.hasPermissions(this,PERMISSIONS) && !novalues) {
displayMetrics metrics = new displayMetrics();
getwindowManager().getDefaultdisplay().getMetrics(metrics);
mScreenDensity = metrics.densityDpi;
mMediaRecorder = new MediaRecorder();
mProjectionManager = (mediaprojectionmanager) getSystemService(Context.MEDIA_PROJECTION_SERVICE);
display display = getwindowManager().getDefaultdisplay();
Point size = new Point();
display.getSize(size);
disPLAY_WIDTH = size.x;
disPLAY_HEIGHT = size.y;
// Override values otherwise video Could crash
loop = false;
if (speed < 500) {
speed = 500;
}
// Start video recording
onToggleScreenShare();
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void onToggleScreenShare() {
if (!isRecording) {
initRecorder();
shareScreen();
} else {
mMediaRecorder.stop();
mMediaRecorder.reset();
stopscreensharing();
}
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void shareScreen() {
if (mMediaProjection == null) {
startActivityForResult(mProjectionManager.createScreenCaptureIntent(),REQUEST_CODE);
}
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void stopscreensharing() {
if (mVirtualdisplay == null) {
return;
}
mVirtualdisplay.release();
destroyMediaProjection();
isRecording = false;
Log.i(TAG,"Video saved");
Toast.makeText(this,"Video saved on int/ext Storage",Toast.LENGTH_SHORT).show();
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void destroyMediaProjection() {
if (mMediaProjection != null) {
mMediaProjection.unregisterCallback(mMediaProjectionCallback);
mMediaProjection.stop();
mMediaProjection = null;
}
Log.i(TAG,"MediaProjection Stopped");
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onBackpressed() {
if (isRecording) {
mMediaRecorder.stop();
mMediaRecorder.reset();
Log.v(TAG,"Stopping Recording");
stopscreensharing();
Toast.makeText(this,"Recording stopped",Toast.LENGTH_SHORT).show();
}
finish();
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onDestroy() {
super.onDestroy();
destroyMediaProjection();
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private Virtualdisplay createVirtualdisplay() {
return mMediaProjection.createVirtualdisplay("Splashscreen",disPLAY_WIDTH,disPLAY_HEIGHT,mScreenDensity,displayManager.VIRTUAL_disPLAY_FLAG_AUTO_MIRROR,mMediaRecorder.getSurface(),null,null);
}
// Manifest Permission Check - Function Call
@Override
public void onRequestPermissionsResult(int requestCode,@NonNull String[] permissions,@NonNull int[] grantResults) {
switch (requestCode) {
case REQUEST_PERMISSION_KEY: {
if ((grantResults.length > 0) && (grantResults[0] + grantResults[1]) == PackageManager.PERMISSION_DENIED) {
isRecording = false;
Snackbar.make(findViewById(android.R.id.content),"Please enable Storage permissions.",Snackbar.LENGTH_INDEFINITE).setAction("ENABLE",new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intentP = new Intent();
intentP.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intentP.addCategory(Intent.CATEGORY_DEFAULT);
intentP.setData(Uri.parse("package:" + getPackageName()));
intentP.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intentP.addFlags(Intent.FLAG_ACTIVITY_TASK_ON_HOME);
intentP.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
intentP.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
startActivity(intentP);
}
}
).show();
}
}
}
}
// display Permission Window
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
public void onActivityResult(int requestCode,int resultCode,Intent data) {
super.onActivityResult(requestCode,resultCode,data);
if (requestCode != REQUEST_CODE) {
Log.e(TAG,"UnkNown request code: " + requestCode);
Toast.makeText(this,"Please accept to make a video",Toast.LENGTH_SHORT).show();
isRecording = false;
finish();
}
if (resultCode != RESULT_OK) {
Log.e(TAG,"Canceled");
Toast.makeText(this,"Canceled. You have to accept to make a video",Toast.LENGTH_SHORT).show();
isRecording = false;
finish();
}
if (resultCode == RESULT_OK) {
mMediaProjectionCallback = new MediaProjectionCallback();
mMediaProjection = mProjectionManager.getMediaProjection(resultCode,data);
mMediaProjection.registerCallback(mMediaProjectionCallback,null);
mVirtualdisplay = createVirtualdisplay();
mMediaRecorder.start();
isRecording = true;
}
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private class MediaProjectionCallback extends MediaProjection.Callback {
@Override
public void onStop() {
if (isRecording) {
isRecording = false;
mMediaRecorder.stop();
mMediaRecorder.reset();
}
mMediaProjection = null;
stopscreensharing();
}
}
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
private void initRecorder() {
try {
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE);
mMediaRecorder.setoutputFormat(MediaRecorder.OutputFormat.MPEG_4); //THREE_GPP
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mMediaRecorder.setVideoSize(disPLAY_WIDTH,disPLAY_HEIGHT);
mMediaRecorder.setVideoFrameRate(30);
Calendar c = Calendar.getInstance();
String sDate = c.get(Calendar.YEAR) + "_"
+ c.get(Calendar.MONTH)
+ "_" + c.get(Calendar.DAY_OF_MONTH)
+ "-" + c.get(Calendar.HOUR_OF_DAY)
+ "-" + c.get(Calendar.MINUTE)
+ "-" + c.get(Calendar.SECOND);
String savestring = getExternalFilesDir(null) + "/Flash_Text_" + sDate + ".mp4";
shareuri = Uri.parse(savestring);
mMediaRecorder.setoutputFile(savestring);
mMediaRecorder.setVideoEncodingBitRate(quality);
sharefilecheck = true;
int rotation = getwindowManager().getDefaultdisplay().getRotation();
int orientation = ORIENTATIONS.get(rotation + 90);
mMediaRecorder.setorientationHint(orientation);
mMediaRecorder.prepare();
} catch (IOException e) {
e.printstacktrace();
}
}
}
}
编辑: 扩展的崩溃日志:
11-06 20:10:46.908 22718 22718 E AndroidRuntime: FATAL EXCEPTION: main
11-06 20:10:46.908 22718 22718 E AndroidRuntime: Process: stutz.com.flash_text,PID: 22718
11-06 20:10:46.908 22718 22718 E AndroidRuntime: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null,request=1000,result=-1,da
ta=Intent { (has extras) }} to activity {stutz.com.flash_text/stutz.com.flash_text.Splashscreen}: java.lang.SecurityException: Media projections requir
e a foreground service of type ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:4845)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.app.ActivityThread.handleSendResult(ActivityThread.java:4886)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:
135)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7356)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: Caused by: java.lang.SecurityException: Media projections require a foreground service of type Service
Info.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:2071)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:2039)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1987)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.media.projection.IMediaProjection$Stub$Proxy.start(IMediaProjection.java:231)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.media.projection.MediaProjection.<init>(MediaProjection.java:58)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.media.projection.mediaprojectionmanager.getMediaProjection(mediaprojectionmanager.ja
va:104)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at stutz.com.flash_text.Splashscreen.onActivityResult(Splashscreen.java:387)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.app.Activity.dispatchActivityResult(Activity.java:8110)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:4838)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: ... 11 more
11-06 20:10:46.908 22718 22718 E AndroidRuntime: Caused by: android.os.remoteexception: Remote stack trace:
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at com.android.server.media.projection.mediaprojectionmanagerService$MediaProjection.start(Medi
aProjectionManagerService.java:476)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.media.projection.IMediaProjection$Stub.onTransact(IMediaProjection.java:135)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.os.Binder.execTransactInternal(Binder.java:1021)
11-06 20:10:46.908 22718 22718 E AndroidRuntime: at android.os.Binder.execTransact(Binder.java:994)
11-06 20:10:46.908 22718 22718 E AndroidRuntime:
11-06 20:18:34.779 23616 23616 E AndroidRuntime: FATAL EXCEPTION: main
11-06 20:18:34.779 23616 23616 E AndroidRuntime: Process: stutz.com.flash_text,PID: 23616
11-06 20:18:34.779 23616 23616 E AndroidRuntime: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null,da
ta=Intent { (has extras) }} to activity {stutz.com.flash_text/stutz.com.flash_text.Splashscreen}: java.lang.SecurityException: Media projections requir
e a foreground service of type ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:4845)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.app.ActivityThread.handleSendResult(ActivityThread.java:4886)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:
135)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7356)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: Caused by: java.lang.SecurityException: Media projections require a foreground service of type Service
Info.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:2071)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:2039)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1987)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.media.projection.IMediaProjection$Stub$Proxy.start(IMediaProjection.java:231)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.media.projection.MediaProjection.<init>(MediaProjection.java:58)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.media.projection.mediaprojectionmanager.getMediaProjection(mediaprojectionmanager.ja
va:104)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at stutz.com.flash_text.Splashscreen.onActivityResult(Splashscreen.java:387)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.app.Activity.dispatchActivityResult(Activity.java:8110)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:4838)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: ... 11 more
11-06 20:18:34.779 23616 23616 E AndroidRuntime: Caused by: android.os.remoteexception: Remote stack trace:
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at com.android.server.media.projection.mediaprojectionmanagerService$MediaProjection.start(Medi
aProjectionManagerService.java:476)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.media.projection.IMediaProjection$Stub.onTransact(IMediaProjection.java:135)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.os.Binder.execTransactInternal(Binder.java:1021)
11-06 20:18:34.779 23616 23616 E AndroidRuntime: at android.os.Binder.execTransact(Binder.java:994)
11-06 20:18:34.779 23616 23616 E AndroidRuntime:
11-06 20:19:31.578 24212 24212 E AndroidRuntime: FATAL EXCEPTION: main
11-06 20:19:31.578 24212 24212 E AndroidRuntime: Process: stutz.com.flash_text,PID: 24212
11-06 20:19:31.578 24212 24212 E AndroidRuntime: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null,da
ta=Intent { (has extras) }} to activity {stutz.com.flash_text/stutz.com.flash_text.Splashscreen}: java.lang.SecurityException: Media projections requir
e a foreground service of type ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:4845)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.app.ActivityThread.handleSendResult(ActivityThread.java:4886)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:
135)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7356)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: Caused by: java.lang.SecurityException: Media projections require a foreground service of type Service
Info.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:2071)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:2039)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1987)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.media.projection.IMediaProjection$Stub$Proxy.start(IMediaProjection.java:231)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.media.projection.MediaProjection.<init>(MediaProjection.java:58)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.media.projection.mediaprojectionmanager.getMediaProjection(mediaprojectionmanager.ja
va:104)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at stutz.com.flash_text.Splashscreen.onActivityResult(Splashscreen.java:387)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.app.Activity.dispatchActivityResult(Activity.java:8110)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:4838)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: ... 11 more
11-06 20:19:31.578 24212 24212 E AndroidRuntime: Caused by: android.os.remoteexception: Remote stack trace:
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at com.android.server.media.projection.mediaprojectionmanagerService$MediaProjection.start(Medi
aProjectionManagerService.java:476)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.media.projection.IMediaProjection$Stub.onTransact(IMediaProjection.java:135)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.os.Binder.execTransactInternal(Binder.java:1021)
11-06 20:19:31.578 24212 24212 E AndroidRuntime: at android.os.Binder.execTransact(Binder.java:994)
11-06 20:19:31.578 24212 24212 E AndroidRuntime:
11-09 17:33:04.746 6534 6534 E AndroidRuntime: FATAL EXCEPTION: main
11-09 17:33:04.746 6534 6534 E AndroidRuntime: Process: stutz.com.flash_text,PID: 6534
11-09 17:33:04.746 6534 6534 E AndroidRuntime: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null,da
ta=Intent { (has extras) }} to activity {stutz.com.flash_text/stutz.com.flash_text.Splashscreen}: java.lang.SecurityException: Media projections requir
e a foreground service of type ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.app.ActivityThread.deliverResults(ActivityThread.java:4845)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.app.ActivityThread.handleSendResult(ActivityThread.java:4886)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:
135)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7356)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: Caused by: java.lang.SecurityException: Media projections require a foreground service of type Service
Info.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.os.Parcel.createException(Parcel.java:2071)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:2039)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1987)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.media.projection.IMediaProjection$Stub$Proxy.start(IMediaProjection.java:231)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.media.projection.MediaProjection.<init>(MediaProjection.java:58)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.media.projection.mediaprojectionmanager.getMediaProjection(mediaprojectionmanager.ja
va:104)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at stutz.com.flash_text.Splashscreen.onActivityResult(Splashscreen.java:387)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at android.app.Activity.dispatchActivityResult(Activity.java:8110)
11-09 17:33:04.746 6534 6534 E AndroidRuntime: at
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。