如何从Xamarin Android获得执行su命令的权限

如何从Xamarin Android获得执行su命令的权限,xamarin,xamarin.android,xamarin.forms,android-permissions,Xamarin,Xamarin.android,Xamarin.forms,Android Permissions,我有Xamarin PCL,在Android项目中,我想用类似以下代码拍摄屏幕截图: Java.Lang.Process sh=Java.Lang.Runtime.GetRuntime().Exec(“su”,null,null); System.IO.Stream os=sh.OutputStream; Write(Encoding.Unicode.GetBytes(“/system/bin/screencap-p/sdcard/img.png”),0,0; os.Flush(); os.Cl

我有Xamarin PCL,在Android项目中,我想用类似以下代码拍摄屏幕截图:

Java.Lang.Process sh=Java.Lang.Runtime.GetRuntime().Exec(“su”,null,null);
System.IO.Stream os=sh.OutputStream;
Write(Encoding.Unicode.GetBytes(“/system/bin/screencap-p/sdcard/img.png”),0,0;
os.Flush();
os.Close();
sh.WaitFor();
但第一行给了我一个例外: Java.IO.IOException:权限被拒绝

我该怎么做才能得到这个许可

我不想用这样的代码截图:

var view=((Android.App.Activity)MainActivity.Context)Window.DecorView.RootView;
view.drawingcachenabled=true;
位图位图=view.GetDrawingCache(true);
字节[]位图数据;
使用(var stream=new MemoryStream())
{
Compress(bitmap.CompressFormat.Png,0,流);
bitmapData=stream.ToArray();
}
writealBytes(屏幕快照路径、位图数据);
因为它并没有给我时间和其他对用户可见的元素

我该怎么做才能得到这个许可


您必须获得手机/仿真器根权限。如果没有Root,su命令将无法用于您的应用。

我如何获得Root权限?您可以使用某些第三方工具进行Root操作,例如:。