アプリ内に 2 つのアクティビティがあります。FirstActivity
と言うSecondActivity
。 FirstActivity
MAIN および LAUNCHER アクティビティです。SecondActivity
USB デバイスを使用します。USB 許可のプロンプトが、アプリの有効期間内に 1 回だけ表示されるようにします。
アクティビティが 1 つしかない場合、マニフェストの次の行によって目的が解決されます。
<activity android:name=".FirstActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/usb_device_filter" />
</activity>
これは次のことを行っていました。
- USB デバイス (xml に記載) が接続されるたびに FirstActivity を起動すると、アプリがまだ開いていません。
- USB デバイスの許可を求めるプロンプトが 1 回だけ表示されます。
これを変更して次のことを達成するにはどうすればよいですか。
SecondActivity が既に実行されていて、新しい USB デバイスが接続されている場合、アプリを再起動せずにデバイスを使用できる必要があります。したがって、次のように同じブロードキャストレシーバーを作成しました。
public class TriggerReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(UsbManager.ACTION_USB_DEVICE_ATTACHED)) { read connected usb devices and register serial port call listener back. } }
ただし、実行中にUSBデバイスが接続されると、問題がFirstActivity
再び発生しSecondActivity
ます。どうすればこれを回避できますか?
必要に応じてさらに情報を追加します。どんな助けにも感謝します。