Я разрабатываю игру с SD-ресурсами.Когда я подключаю устройство как MASS STORAGE, происходит сбой устройства.Это потому, что когда я подключаю свое устройство к ПК в качестве запоминающего устройства, устройство не имеет доступа к SD-карте.Поэтому я попробовал разные способы решения.
В настоящее время я реализую BroadcastReceiver и обрабатываю действия ACTION_MEDIA_BAD_REMOVAL (если SD-карта извлекается вручную) и ACTION_MEDIA_SHARED (он должен обрабатывать действие, если устройствоподключен как Mass Storage, но это не так).
Когда обнаруживаются оба этих действия, я отправляю сообщение об ошибке и завершаю приложение.
Когда я вынимаю SD-карту вручнуюэто работает, но не как запоминающее устройство.
Также на каждом кадре я проверяю, находится ли SD-карта на устройстве на каждом кадре с этим методом.
public int hasSDCard()
{
String state = Environment.getExternalStorageState();
if(Environment.MEDIA_MOUNTED.equals(state) || Environment.MEDIA_MOUNTED_READ_ONLY.equals(state))
return 1;
return 0;
}
Когда 0, это неУ меня нет SD-карты и карты, на которой я также отправляю сообщение об ошибке и завершаю работу приложения.
Но все равно не работает в режиме USB Mass Storage.
Мой вопрос: Как я могу определить, когда устройство подключено как USB Mass Storage ?
Какие классы мне следует использовать?
Какие слушатели я могу реализовать дляпозвони моей ошибке месМудрец деятельности и закончить мое приложение?