Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Анд_Рей
3 / 4 / 1
Регистрация: 27.12.2009
Сообщений: 173
#1

Подключена флешка или нет - Программирование Android

08.12.2014, 04:38. Просмотров 483. Ответов 4
Метки нет (Все метки)

Используя файловую систему или API как можно узнать подключена ли флешка к телефону или нет.. .
Заранее спасибо!

пробывал такие способы(не работают)
1)
Java
1
2
3
4
5
6
if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
            textView.setText("yes");
        }
        else if (!Environment.getExternalStorageState().equals(Environment.MEDIA_CHECKING)){
            textView.setText("not");
        }
2)
Java
1
2
3
4
5
File file = new File("/storage/usb0/");
if(file.exists())
{
 
}
Добавлено через 6 минут
Так же пробывал
3)
Java
1
2
3
4
5
File file = new File("/storage/UsbDriveA/");
if(file.exists())
{
 
}
тоже не сработало
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2014, 04:38
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Подключена флешка или нет (Программирование Android):

В сети или нет
Нужно, чтобы при условии, что пользователь находится в сети приложение...

Существует файл или нет
При подключении флешки появляется новая директория storage/UsbDriveA проверяя...

Отправляем уведомление с подтверждением да или нет
Привет! Есть кнопка на сайте при нажатии нужно выслать на мое приложение...

Как проверить включен bluetooth или нет?
Как проверить включен bluetooth или нет? Если да то одно действие а если нет то...

Notification. Узнать, висит ли уведомление или нет
При щелчке по уведомлению оно исчезает (хотел бы, чтобы не исчезало, но уже...

Нужно сохранить пользователя(он зашел или нет)
дело в том что есть авторизация, человек логиниться в одном активити, если...

4
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,732
08.12.2014, 16:59 #2
Анд_Рей, как же раздражают эти словечки из албанского под названием "пробывал". Просто ужас!
Встречный вопрос: а что не сработало? Какие сообщения? Была ли действительно подключена внешняя карта памяти? Насколько я знаю, современные устройства часть своей внутренней памяти используют как внешнюю и без подключения micro-SD, как раз собираюсь подробнее изучить сегодня. Ещё зависит от версии Андроида.

Добавлено через 5 часов 2 минуты
Вот сравнительно подробная презентация по внешним хранилищам: http://www.eecis.udel.edu/~bohacek/M...rectories.pptx. Хоть немного становится ясно в этом бардаке Гугловской спецификации.

Добавлено через 2 часа 22 минуты
Нашёл ещё один зачётный сайтик: http://101apps.co.za/articles/using-...ing-files.html
0
dmitre
10 / 10 / 3
Регистрация: 02.11.2013
Сообщений: 53
08.12.2014, 21:23 #3
...
0
Анд_Рей
3 / 4 / 1
Регистрация: 27.12.2009
Сообщений: 173
09.12.2014, 03:47  [ТС] #4
Пытаюсь поймать событие (ну или хотя-бы проверить) подключение флешки через microusb кабель.

Вот так выглядит мой манифест
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.test"
    android:versionCode="1"
    android:versionName="1.0" >
 
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>
Вот так выглядит мой BroadcastReceiver:

Java
1
2
3
4
5
6
7
8
public class DetactUSB extends BroadcastReceiver
{
    @Override
    public void onReceive(Context context, Intent intent)
    {
        Toast.makeText(context, intent.getAction(), Toast.LENGTH_LONG).show();
    }
}
Вот такими способами я пытаюсь его запустить в главном активити:
1)
Java
1
2
3
4
5
6
7
8
9
10
protected void onCreate(Bundle savedInstanceState)
{
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
 
     IntentFilter filter = new IntentFilter();
     filter.addAction("android.intent.action.UMS_CONNECTED");
     filter.addAction("android.intent.action.UMS_DISCONNECTED");
     registerReceiver(new DetactUSB(), filter);
 }
2)
Java
1
2
3
4
5
6
7
8
9
10
protected void onCreate(Bundle savedInstanceState)
{
     super.onCreate(savedInstanceState);
     setContentView(R.layout.activity_main);
 
     IntentFilter filter = new IntentFilter();
     filter.addAction("android.intent.action.ACTION_UMS_CONNECTED");
     filter.addAction("android.intent.action.ACTION_UMS_DISCONNECTED");
     registerReceiver(new DetactUSB(), filter);
 }
Ни в обдном из этих двух способов не выводится ни одно сообщение - ни при подключении флешки,ни при ее отключении
Подскажите,пожалуйста,что тут не так?
Спасибо!

Добавлено через 16 минут
Так-же,при подключении флешки у меня появляется папка /storage/UsbDriveA, при отключении она исчезает.
Вот так я пытался проверить:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
private void CheckPath()
{
    TextView tv = (TextView) findViewById(R.id.textView1);
    File file = new File("/storage/UsbDriveA");
    if(file.exists() && file.isDirectory())
    {
         tv.setText("Connected");
    }
    else
    {
         tv.setText("Not connected");
    }
}
Всегда Connected! - Тоже не годится
0
CoolMind
421 / 404 / 65
Регистрация: 06.10.2012
Сообщений: 1,732
09.12.2014, 09:45 #5
Анд_Рей, ещё не прочитал весь текст, но сразу вижу, что в манифесте не хватает права на запись на карту памяти.

Добавлено через 6 минут
(Предыдущее сообщение некорректно)
Анд_Рей, я не разбираюсь в этой теме, но, возможно, вам не хватает некоторых разрешений: http://stackoverflow.com/questions/1...-does-not-work.
Также увидел другой метод для проверки подключения: http://stackoverflow.com/questions/5...lugged-in?lq=1.
0
09.12.2014, 09:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.12.2014, 09:45
Привет! Вот еще темы с решениями:

Кастомизация стандартных вьювов - плагиат или нет?
Вопрос совершенно не относящийся к программированию, но вроде уместный для...

Узнать используется (записывается) файл или нет
В приложении 1н broadcast receiver записывает файл, 2й broadcast receiver...

Как проверить пустое SharedPreferences или нет при загрузке активити?
У меня вот такая задача при первой загрузке приложения ничего. В строку ввода я...

Как вернуть результат в активити включил юзер gps или нет?
Как вернуть результат в активити включил юзер gps или нет?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru