2017-11-02 47 views
0

を所有していませんこの例外が発生し: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サービスと権限とは関係ありませんでした。私が読もうとしたピンは、その方向が設定された後に閉じられました。終了するためにコールを削除すると、この問題は解決しました。

+0

どのような行が例外を引き起こしますか? – Blundell

+0

質問を完全なスタックトレースで更新できますか? あなたの活動の終了時に 'Gpio'オブジェクトを閉じますか? –

+0

行7によって例外が発生します。しかし、実際には、@ NickFelkerのコメントを読んだ後、私が間違ったことを実現しました。私は方向を決めてからピンが閉じられたからです。例外が与えられた閉鎖ピンを読もうとすると。かなり誤解を招くことはありませんが、問題は今解決されています:) – RespectableSlave

答えて

0

ピンが開いたままにしなければなりません(あなたが本当にそれで終わったまでそれを閉じていない)それ以外の場合は、ピンを読み取ろうとするには、インターネット利用や録音、オーディオのアクセス権のようなAndroidの権限で私を混同不可解な例外を発生させます。

関連する問題