Xamarin Android C#:使用 xml 资源文件夹和清单来定义用于检测连接的 USB 设备崩溃应用程序的意图过滤器

Posted

技术标签:

【中文标题】Xamarin Android C#:使用 xml 资源文件夹和清单来定义用于检测连接的 USB 设备崩溃应用程序的意图过滤器【英文标题】:Xamarin Android C#: Using the xml resource folder and manifest to define an intent filter for detecting connected usb devices crashs application 【发布时间】:2016-06-20 13:19:48 【问题描述】:

希望今天是美好的!

我已经按照 android 开发指南中的分步指南来检测 USB 设备的连接:http://developer.android.com/guide/topics/connectivity/usb/accessory.html (在带有 xamarin 的 C# 中,虽然不是 java 并且使用意图过滤器路径,以便它可以通过广播接收器自动检测设备)

不用说,它没有按预期运行,导致我的应用在启动时立即崩溃。

经过几个小时后,我至少找到了其中一个问题,但可能还有更多问题。问题是,如果我在 res 文件夹中的 xml 文件夹(我创建的)中创建“accessory_filter.xml”,那么无论如何我的应用程序都会崩溃。即使我的代码根本不使用它,只要该 xml 文件存在,我的应用程序就会在启动后立即崩溃。

任何帮助、建议或帮助将不胜感激!谢谢。

编辑: 这是我的 Android 清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="Scout.App" android:versionCode="1" android:versionName="0.0.0" android:installLocation="auto">
    <uses-feature android:name="android.hardware.usb.accessory" />
  <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="19" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RESTART_PACKAGES" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_SMS" />
    <uses-permission android:name="android.permission.RECEIVE_SMS" />
    <application android:label="myapplication">
    <activity android:name="MainActivity">
            <intent-filter>
                <action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
            </intent-filter>
            <meta-data android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" android:resource="@xml/accessory_filter" />
        </activity>
  </application>
</manifest>

还有我的附件过滤器.xml:

<?xml version="1.0" encoding="utf-8" ?>
<resources><usb-accessory model="modelname" manufacturer="Me" version="1.0"/></resources>

【问题讨论】:

【参考方案1】:

Xamarin 在这里的工作方式略有不同。与其将 Intent 过滤器写入清单,不如向 Activity 添加注释。

Xamarin documentation for this topic 值得一读。

【讨论】:

以上是关于Xamarin Android C#:使用 xml 资源文件夹和清单来定义用于检测连接的 USB 设备崩溃应用程序的意图过滤器的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Android:以编程方式从 colors.xml 获取颜色值

C#使用Xamarin开发Android应用程序 -- 系列文章

转换/访问 XML 的数据 - monotouch (Xamarin) / C# 中的字符串

无法使用 C# 从 Xamarin.iOs 和 Xamarin.Android 连接到 MySql

如何使用c#为android采取xamarin密码文本框

如何从 C++ 为 Xamarin.Android 创建 C# DLL