如何从 Xamarin 获得执行 su 命令的权限 Android
How to get permission to execute su command from Xamarin Android
我有 Xamarin PCL,在 Android 项目中,我想使用类似于以下代码的屏幕截图:
Java.Lang.Process sh = Java.Lang.Runtime.GetRuntime().Exec("su", null, null);
System.IO.Stream os = sh.OutputStream;
os.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.DrawingCacheEnabled = true;
Bitmap bitmap = view.GetDrawingCache(true);
byte[] bitmapData;
using (var stream = new MemoryStream())
{
bitmap.Compress(Bitmap.CompressFormat.Png, 0, stream);
bitmapData = stream.ToArray();
}
File.WriteAllBytes(screenshotPath, bitmapData);
因为它没有给我时间和用户可见的其他元素。
What can I do to get this permission?
您必须获得 phone/emulator root 权限。如果没有 Root,您的应用程序将无法使用 su 命令。
我有 Xamarin PCL,在 Android 项目中,我想使用类似于以下代码的屏幕截图:
Java.Lang.Process sh = Java.Lang.Runtime.GetRuntime().Exec("su", null, null);
System.IO.Stream os = sh.OutputStream;
os.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.DrawingCacheEnabled = true;
Bitmap bitmap = view.GetDrawingCache(true);
byte[] bitmapData;
using (var stream = new MemoryStream())
{
bitmap.Compress(Bitmap.CompressFormat.Png, 0, stream);
bitmapData = stream.ToArray();
}
File.WriteAllBytes(screenshotPath, bitmapData);
因为它没有给我时间和用户可见的其他元素。
What can I do to get this permission?
您必须获得 phone/emulator root 权限。如果没有 Root,您的应用程序将无法使用 su 命令。