我写了一篇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在设置方向后被关闭。删除关闭调用解决了此问题。