私は、Android 5.1.1 で動作する Android タブレット (Glory Star という会社によるカスタムの商用タブレット) を持っています。そこで、MagTek が提供する mtscra.jar ライブラリ ( https://www.magtek.com/support/dynamag?tab=software ) で使用できる MagTek Dynamag カード リーダー (モデル #21073075) を使用しています。ライブラリ/カード リーダーは正しく機能しており、カード リーダーに接続して通信でき、カードが通されるたびにカード データを取得できます。彼らのライブラリは USB ホスト ( http://developer.android.com/guide/topics/connectivity/us/host.html ) を使用しています。
接続が確立されたら、インターフェースを見つけ、続いて通信が行われるエンドポイントを見つける必要があります。これはすべて、タブレットの再起動後という 1 つの条件を除いて発生します。タブレットを再起動してアプリを起動すると、mtscra ライブラリは引き続き MagTek カード リーダーを見つけることができますが、インターフェイスを見つけることができないため、最終的に接続を確立できません。ただし、カード リーダーを抜き差しすると、インターフェイスが再び検出されます。再起動時に、カード リーダーのインターフェイスを特定する機能を無効にする何かが発生していると思われます。
この問題に対する既知の解決策はありますか? 私のアプリが起動されたとき(私はルートアクセス権を持っています)、基本的にプログラムでUSBポートを「リセット」する方法はありますか(それはプラグを抜いて再び差し込むのに似ています)?または、コマンドラインから USB ポートを無効/有効にする方法はありますか?