none
Xamarinで作成したAndoridアプリのシリアル通信の方法について確認させてください RRS feed

  • 質問

  • お世話になります。

    現在、Visual Studio Professional 2015にXamarin(v4.1.1.3)、Xamarin.Android(v6.1.1.1)をインストールし、

    Androidアプリを作成しようとしていますが、USB接続によるシリアル通信の手法がわからず困っております。

    以下、ご教授をお願いしたいと考えております。

    以下の手順でプロジェクトを作成しています。

      ・ファイル⇒新規作成⇒プロジェクト⇒テンプレート⇒Visual C#⇒Android

    このAndroidアプリをXperia(SO-02E)にインストールし、

    PC(Windows7)とUSB接続し、PC側から取得した情報をAndroidアプリ側に表示させたいと考えております。

    開発言語はC#なので、"System.IO.Ports"が利用可能と考えたのですが、

    「型または名前空間の名前'Ports'が名前空間’System.IO’に存在しません」のエラーが出ており、

    参照できません。

    Xamarinで開発する場合、”System.IO.Ports”はそもそも使用できないのでしょうか?

    存在しない場合、同等なIFはその他に存在するのでしょうか?

    ※Xamarinで開発すれば、C#のIFは全てそのまま使用できると考えたいたのですが、

       認識が誤っておりますでしょうか?

    ・備考

    NuGetパッケージから「SerialPortLib」が何となく同等なIFに見えたため、

    インストールしようとしたのですが、以下のエラーが出てインストールできませんでした。

    「パッケージ'NLog 4.1.0'をインストールできませんでした。

    このパッケージを'MonoAndroid.Version=v4.4'を対象とするプロジェクトにインストールしようとしていますが、

    そのフレームワークと互換性があるアセンブリ参照またはコンテンツ ファイルがパッケージに含まれていません」

    拙い質問で申し訳ございませんが、

    以上、よろしくお願いいたします。

    
    2016年8月4日 7:12

回答

  • Xamarinで開発する場合、”System.IO.Ports”はそもそも使用できないのでしょうか?

    存在しない場合、同等なIFはその他に存在するのでしょうか?

    ※Xamarinで開発すれば、C#のIFは全てそのまま使用できると考えたいたのですが、

       認識が誤っておりますでしょうか?

    はい、使用できません。

    標準では存在しなさそうですね。

    間違っています。Windowsデスクトップアプリなどで使用できるライブラリは、C#ではなく.NET Frameworkが提供しているライブラリです。.NET Framework上で動かすなら使えますが、そうではないXamarin/Android上では使えません。(一部共通なものは存在しているでしょうけど)

    ちょっと調べたらこういうのが見つかりました。見つけただけなので検証も検討もしていませんが。

    https://bitbucket.org/lusovu/xamarinusbserial

    • 回答としてマーク 星 睦美 2016年9月21日 5:27
    2016年8月4日 7:27
  • こんにちは。

    ※Xamarinで開発すれば、C#のIFは全てそのまま使用できると考えたいたのですが、 認識が誤っておりますでしょうか?

    プラットフォームに依存しそうな低層な部分になればなるほど
    プラットフォームネイティブ側での対応が必要になる可能性が高いと思います。

    似たような投稿が以前あったようです。
    https://social.microsoft.com/Forums/en-US/54536544-c7b2-4a1f-ab5a-4255746fcbce/using-serial-port-in-xamarin-to-build-android-using-c?forum=Offtopic

    Xamarin.Android側のAPIで出来そうな気もするのですが、まずは上記で紹介されているライブラリを試してみては如何でしょうか。

    https://www.nuget.org/packages/LusoVU.XamarinUsbSerialForAndroid/

    • 回答としてマーク 星 睦美 2016年9月21日 5:27
    2016年8月4日 7:27
    モデレータ

すべての返信

  • Xamarinで開発する場合、”System.IO.Ports”はそもそも使用できないのでしょうか?

    存在しない場合、同等なIFはその他に存在するのでしょうか?

    ※Xamarinで開発すれば、C#のIFは全てそのまま使用できると考えたいたのですが、

       認識が誤っておりますでしょうか?

    はい、使用できません。

    標準では存在しなさそうですね。

    間違っています。Windowsデスクトップアプリなどで使用できるライブラリは、C#ではなく.NET Frameworkが提供しているライブラリです。.NET Framework上で動かすなら使えますが、そうではないXamarin/Android上では使えません。(一部共通なものは存在しているでしょうけど)

    ちょっと調べたらこういうのが見つかりました。見つけただけなので検証も検討もしていませんが。

    https://bitbucket.org/lusovu/xamarinusbserial

    • 回答としてマーク 星 睦美 2016年9月21日 5:27
    2016年8月4日 7:27
  • こんにちは。

    ※Xamarinで開発すれば、C#のIFは全てそのまま使用できると考えたいたのですが、 認識が誤っておりますでしょうか?

    プラットフォームに依存しそうな低層な部分になればなるほど
    プラットフォームネイティブ側での対応が必要になる可能性が高いと思います。

    似たような投稿が以前あったようです。
    https://social.microsoft.com/Forums/en-US/54536544-c7b2-4a1f-ab5a-4255746fcbce/using-serial-port-in-xamarin-to-build-android-using-c?forum=Offtopic

    Xamarin.Android側のAPIで出来そうな気もするのですが、まずは上記で紹介されているライブラリを試してみては如何でしょうか。

    https://www.nuget.org/packages/LusoVU.XamarinUsbSerialForAndroid/

    • 回答としてマーク 星 睦美 2016年9月21日 5:27
    2016年8月4日 7:27
    モデレータ
  • フォーラム オペレーターの星 睦美です。わたです さん、こんにちは。
    フォーラム ユーザーにも参考になるアドバイスだと思いますので、今回は投稿者のわたです さんに代わり[回答としてマーク] させていただきました。

    今後ともMSDN フォーラムをよろしくお願いいたします。


    フォーラム オペレーター 星 睦美 - MSDN Community Support

    2016年9月21日 5:32