代码之家  ›  专栏  ›  技术社区  ›  RespectableSlave

安卓操作系统。ServiceSpecificException调用方不拥有BCM26(代码13)

  •  0
  • RespectableSlave  · 技术社区  · 8 年前

    我写了一篇Xamarin。Android C#类,用于管理在我的Raspberry Pi 3上运行的Android Things操作系统的io引脚。当我尝试读取pin时,会引发此异常:

    安卓操作系统。ServiceSpecificException:调用方不拥有BCM26(代码 13)

    发件人:

    1   // setup 
    2   var io = new PeripheralManagerService();
    3   Gpio p = io.OpenGpio("BCM26");
    4   p.SetDirection(Gpio.DirectionIn);
    5
    6   // later I read it 
    7   if (p.Value == HIGH)
    8      Console.WriteLine("Pin is high");
    9   // Exception raised 
    

    我应该如何解决这个问题?

    上面的代码实际上可以工作。我试图只将相关部分提取到一个小的代码样本中,因为原始代码是多线程的,太复杂了,无法发布,这就找到了引发异常的原因。这与安卓服务和权限无关。我试图读取的pin在设置方向后被关闭。删除关闭调用解决了此问题。

    1 回复  |  直到 8 年前
        1
  •  0
  •   RespectableSlave    8 年前

    Pin必须保持打开状态(在真正完成之前不要关闭),否则尝试读取Pin会引发一个神秘的异常,将我与Android权限(如互联网使用或录制音频权限)混淆。