当前位置: 首页 > 知识库问答 >
问题:

在Xamarin.Android中是否可以将文件复制到USB驱动器?

西门威
2023-03-14

如何以编程方式将文件从手机内部存储器传输到USB驱动器?我没有获得获取外部目录所需的代码。

string pathToDirectory = System.IO.Path.Combine(Android.OS.Environment.ExternalStorageDirectory.AbsolutePath);

上面发布的代码仅获取SD卡位置。如何访问USB驱动器?

共有1个答案

支劲
2023-03-14

如何访问USB驱动器?

您可以注册外部存储设备的即插即用广播:

Intent.ACTION_MEDIA_MOUNTED 
Intent.ACTION_MEDIA_REMOVED 

UsbReceiver:

class USBReceiver : BroadcastReceiver
    {
        public override void OnReceive(Context context, Intent intent)
        {
            string action = intent.Action;
            if (action.Equals(Intent.ActionMediaMounted))
            {
                string mountPath = intent.Data.Path;
            }
        }
    }

代码片段:

UsbManager manager = (UsbManager)_mainActivity.GetSystemService(Context.UsbService);
var deviceList = manager.DeviceList;
IEnumerable<UsbDevice> deviceIterator = deviceList.Values.AsEnumerable();

if (deviceIterator.Count() > 0)
  {
    var device = deviceIterator.ElementAt(0);

    ACTION_USB_PERMISSION = "com.android.example.USB_PERMISSION";
    var mPermissionIntent = PendingIntent.GetBroadcast(_mainActivity.ApplicationContext, 0, new Intent(ACTION_USB_PERMISSION), 0);

    UsbManager mUsbManager = (UsbManager)_mainActivity.GetSystemService(Context.UsbService);
    mUsbManager.RequestPermission(device, mPermissionIntent);

    bool perm = mUsbManager.HasPermission(device);
    if (perm)
      {
       //File Copy
       File.Copy(FileNameSource, FileNameDestination);
      }
 }
 类似资料:
  • 问题内容: 我的Android手机上有一个数据库,我需要将信息保存到 SD卡上。 是否可以将数据库文件以可读状态保存到SD卡上? 我尚未找到有关如何执行此操作的任何信息。 一些将数据库文件复制到SD卡的源代码将是理想的。 问题答案: 数据库文件与任何其他文件一样,如果您复制二进制文件,它将起作用。 Java没有内置的文件复制方法,因此您可以使用以下方法: 在Java中复制文件的标准简洁方法? 只是

  • 我的Java FX2应用程序配置了一个串行设备,作为部署的一部分,它必须安装一个Windows设备驱动程序,并将本机LIB(RxTx串行端口LIB)复制到Java DIRS中。 Java Web Start能处理它吗?或者用户应该分阶段进行:手动安装驱动程序,然后复制到libs,然后通过Web start安装应用程序。 更新:下面的myapp.jar是自签名的。我把dll放在项目名称下。我在JNL

  • 我有一个嵌入式系统开发映像包含在一个Docker文件中。为了闪存代码,我需要通过USB串行连接到节点(例如)。 甚至可能通过udev规则公开特定的devs吗?

  • 问题内容: 如文档所述,您可以使用可选参数调用webdriver.FirefoxProfile()来指向浏览器要使用的特定配置文件的目录。我注意到运行此命令花了很长时间,因此当我查看代码时,似乎正在复制指定的配置文件问题是,复制配置文件需要很长时间(大约> 30分钟,没有耐心等待它完成。) 我正在使用用户脚本和selenium的混合为我做一些自动化,因此每次想测试我的代码时都要设置一个新的配置文件

  • 我使用以下JCIFS代码将文件从本地磁盘复制到共享驱动器 复制10 mb文件需要10分钟以上。而当我直接复制同一个文件时,大约需要1分钟。我尝试了3种方法来复制文件(请参阅代码的注释部分),但没有一种方法显示出任何显著的差异。 是否有任何方法可以提高JCIFS的性能?

  • 我正在尝试将外部JSON文件从Azure Blob存储加载到Snowflake。我创建了表LOCATION_DETAILS,所有列都作为variant。当我试图加载到表中时,我得到以下错误: 有人能帮我吗?