を所有していませんこの例外が発生し:android.os.ServiceSpecificException発信者は、私はピンを読んしようとすると、私は私のラズベリーパイ3上で実行されているAndroidの物事OS用のIOピンを管理Xamarin.Android C#クラスを書いたBCM26(コード13)
android.os.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
この問題を解決するにはどうすればよいですか?
編集:上記のコードは、実際に動作します。オリジナルはマルチスレッドで、投稿が複雑すぎるため、関連する部分を小さなサンプルに抽出しようとしましたが、例外が発生した理由がわかりました。 Androidサービスと権限とは関係ありませんでした。私が読もうとしたピンは、その方向が設定された後に閉じられました。終了するためにコールを削除すると、この問題は解決しました。
どのような行が例外を引き起こしますか? – Blundell
質問を完全なスタックトレースで更新できますか? あなたの活動の終了時に 'Gpio'オブジェクトを閉じますか? –
行7によって例外が発生します。しかし、実際には、@ NickFelkerのコメントを読んだ後、私が間違ったことを実現しました。私は方向を決めてからピンが閉じられたからです。例外が与えられた閉鎖ピンを読もうとすると。かなり誤解を招くことはありませんが、問題は今解決されています:) – RespectableSlave