Pripojenie telefónu Android k počítaču cez USB ako flash disk. Ako pripojiť jednotku Flash k zariadeniam so systémom Android: problémy a riešenia Program Android na prácu s jednotkou Flash

Ak potrebujete súrne preniesť nejaké súbory z telefónu, tabletu alebo smartfónu s Androidom na USB flash disk, aby ste napríklad vymazali pamäť svojho zariadenia alebo rýchlo niečo preniesli na disk priateľa, môžete to urobiť vďaka nejaké dodatočné nákupy. Nižšie vám povieme, ako môžete pripojiť flash disk k zariadeniu Android a čo na to potrebujete.

Ako pripojiť flash disk k smartfónu alebo tabletu so systémom Android

Vďaka tomu budete mať možnosť pripojiť USB flash disk k vášmu zariadeniu kedykoľvek a kdekoľvek, ale budete musieť trochu nakupovať.

Pomocou OTG kábla

Jediná vec, ktorú musíte použiť na túto metódu, je ísť do obchodu alebo si objednať kábel OTG online. Ide o akýsi adaptér z vášho MicroUSB vstupu na zariadení do USB. Je to lacné, okolo 150–300 rubľov, takže táto možnosť sa zdá byť najpraktickejšia. Ale pozor, pred kúpou drôtu si skontrolujte, ktorý vstup máte na telefóne/tablete. Vyberte potrebný adaptér pre svoje zariadenie, ak ho nenájdete, budete si musieť jednoducho kúpiť ďalší adaptér z kábla OTG do vášho gadgetu.

Typy MicroUSB a MiniUSB:

Cez aplikácie

Po zakúpení kompletnej sady káblov jednoducho pripojte všetky komponenty a flash disk bude automaticky detekovaný na vašom zariadení. Telefón však nemusí mať vstavanú podporu pre kábel OTG (väčšina moderných mobilných zariadení má túto funkciu), potom existujú dve možnosti:



Pre prácu s Nexus Media Explorer stačí spustiť aplikáciu po vložení flash disku do OTG kábla a vložení do telefónu. StickMount bude musieť byť trochu nakonfigurovaný:

Teraz, keď váš tablet alebo telefón identifikoval flash disk, môžete začať prehliadať a presúvať všetko z miesta na miesto tak, že prejdete do prieskumníka nainštalovaného v telefóne. Ak takýto program nemáte, stiahnite si ES File Explorer (ES Explorer) z Play Market (https://play.google.com/store/apps/details?id=com.estrongs.android.pop) alebo akékoľvek iné podobné z hľadiska funkčnosti aplikácie.

Jediným spôsobom, ako pripojiť flash disk k vášmu Android tabletu alebo telefónu, je použiť OTG kábel, ktorý poslúži ako adaptér z MicroUSB vstupu do konektora disku. Ak zariadenie nevidí jednotku flash, použite jeden z vyššie uvedených programov. Po úspešnej detekcii prejdite do Prieskumníka a vykonajte všetky operácie zahŕňajúce prenos a úpravu súborov.

Android je skvelý v práci s USB flash diskami, niektoré zariadenia majú dokonca plnohodnotný USB port. Ale nie každý má také šťastie. Väčšina zariadení je vybavená microUSB konektorom. Čo robiť, ak potrebujete pripojiť flash disk k smartfónu alebo tabletu vybavenému iba microUSB portom?

Android má technológiu USB On - To - Go (voľne preložené: zapojte a používajte). Jeho podstatou je, že zariadenie je schopné napájať externé médiá pripojené cez microUSB. Vďaka tomu má používateľ možnosť pracovať s flash diskami priamo zo svojho tabletu alebo smartfónu.

Tototechnológie Všetky zariadenia s Androidom 3.1 a vyšším ho určite majú.. Pokiaľ ide o zvyšok, musíte skontrolovať. Použite na to program z Google Play Market.

Kontrola vášho zariadenia pomocou USB OTG Checker

Ak chcete skontrolovať OTG na svojom zariadení, jednoducho spustite program USB OTG Checker. Tá prístroj otestuje a ukáže vám výsledok.

Pripojenie OTG kábla

Takže vaše zariadenie je dostatočne moderné na to, aby podporovalo túto jednoduchú technológiu. Teraz potrebujete adaptér USB na microUSB. Tento kábel sa tiež nazýva kábel OTG.

Vyzerá ako každý bežný adaptér: na jednej strane je plochý konektor pre microUSB konektor, na druhej je port USB pokrytý plastom.

Pripojte jeden koniec OTG kábla k smartfónu alebo tabletu a do druhého vložte flash kartu. Ak je všetko v poriadku, na obrazovke zariadenia sa zobrazí zodpovedajúca správa. Zobrazí sa výzva na otvorenie správcu súborov na zobrazenie údajov z jednotky USB.

StickMount: ak zariadenie nevidí flash disk cez adaptér

Bohužiaľ to nie je vždy také jednoduché. Na niektorých zariadeniach nemusí byť USB disk rozpoznaný, aj keď je prítomný OTG. Ak vylúčime možnosť poškodenia jednotky Flash (skontrolujte ju pripojením k počítaču), potom možno váš smartfón / tablet automaticky nerozpozná externé médium. V tomto prípade vám program pomôže. Môžete si ho stiahnuť z Google Play Market.

  1. Stiahnite si a nainštalujte program.
  2. Skúste znova vložiť jednotku flash.
  3. Android vás teraz vyzve na spustenie StickMount. Súhlasím. Jednotka Flash bude detekovaná a budete môcť zobraziť súbory nainštalované na nej.

Upozorňujeme, že StickMount vyžaduje prístup root.

Ako získať prístup root na zariadení


Ako pripojiť USB flash disk k Androidu pomocou adaptéra - video

Ako zobraziť údaje z flash disku

Aby ste s externým diskom mohli pohodlne pracovať, budete potrebovať dobrých súborových manažérov. Ak máte root prístup, môžete si vybrať z rôznych možností. Ak ste však vlastníkom zariadenia Nexus, v službe Play Market sú najmenej dve aplikácie, ktoré vám umožňujú používať root.

Aplikácia Popis
Importér médií Nexus Kopírovanie mediálnych údajov z externých médií. Vlastnosti aplikácie:
  • Importujte/exportujte fotografie, videá a hudbu
  • podpora NTFS
  • Pracujte bez koreňových práv
Správa súborov Nexus USB 2OTG. Zobrazenie súborov na externých médiách pre zariadenia Nexus. Vlastnosti aplikácie:
  • Plná kontrola nad súbormi (vytváranie, mazanie, úprava)
  • Systém súborov podporuje súborový systém FAT32
  • Pracujte bez koreňových práv

Tieto nie sú jediné, ale možno jedny z najlepších. Bohužiaľ, obaja sú platení. Vo všeobecnosti môžu fungovať na iných zariadeniach, musíte to skontrolovať tu. Môžete to urobiť pomocou programu Nexus Photo Viewer.

Na pripojenie flash disku k zariadeniu s operačným systémom Android teda budete potrebovať adaptér USB na microUSB a niekoľko programov. Na plnohodnotnú prácu s vymeniteľnými médiami navyše potrebujete dobrých správcov súborov, ktoré je možné nainštalovať iba do smartfónu alebo tabletu s prístupom root.

Smartfóny a tablety aktívne nahrádzajú nielen osobné počítače, ale dokonca aj notebooky z nášho každodenného života. Niektoré funkcie, napríklad písanie pomerne veľkého kusu textu, si však vzhľadom na malú veľkosť klávesnice mobilného zariadenia vyžadujú určité úsilie a často problémy.

V tejto súvislosti vyvstáva otázka: je možné priamo pripojiť požadovaný modul gadget k vášmu zariadeniu Android? Ukazuje sa, že je to možné! Nie každý používateľ vie, že k zariadeniu so systémom Android je možné pripojiť klávesnicu, herné USB periférie, externý modem atď.

Jedným z nástrojov na výmenu informácií medzi smartfónom a PC je flash disk (USB flash disk), ktorý sa pripája cez USB rozhranie k akémukoľvek čítaciemu zariadeniu.

Väčšina moderných zariadení s OS Android má štandardný micro-USB konektor, ktorý slúži ako komunikačný port. Ak chcete vidieť zariadenia pripojené cez port, smartfón musí podporovať technológiu USB On-The-Go (skrátene USB OTG). Táto funkcia je implementovaná vo verziách operačného systému Android nie nižších ako 3.1.

Na pripojenie flash disku budete potrebovať USB OTG kábel s microUSB konektorom na jednej strane a USB konektorom na druhej strane:

Ak bol výrobca vášho zariadenia lakomý a nepridal ho k telefónu, musíte ho získať minimálnou sumou v akomkoľvek špecializovanom obchode. Ak vaše zariadenie nemá USB konektor, budete si musieť dokúpiť adaptér s USB na jednom konci a konektorom zodpovedajúcim vášmu zariadeniu na druhom, ku ktorému sa následne pripojí USB OTG kábel.

Ako otvoriť flash disk v systéme Android

Na otvorenie jednotky flash a zobrazenie jej obsahu potrebujete správcu súborov. Mnoho moderných modelov smartfónov je tým pôvodne vybavených a ak máte kábel USB OTG, na vyriešenie problému zostáva iba pripojenie disku. Ak tam nie je predinštalovaný správca súborov, tak si budete musieť stiahnuť nejakého iného, ​​našťastie podobného (priamo cesta k súborom: /sdcard/usbStorage).

Tablet Android nevidí flash disk - dôvody

Nie všetky zariadenia so systémom Android však môžu fungovať zjednodušeným spôsobom. Často sa spojenie vytvorí, ale nedeje sa vôbec nič.

Prvý dôvod. Táto situácia môže nastať v dôsledku skutočnosti, že konkrétne zariadenie nemôže automaticky pripojiť externý disk, takže bude potrebovať pomoc, čo je možné pomocou inštalácie programu, ktorý to dokáže. Azda najobľúbenejšia bezplatná v tomto segmente funguje nielen s flash diskami, ale aj s ďalším vybavením vrátane digitálnych fotoaparátov.

Je pravda, že jeho inštalácia vyžaduje root prístup a ak ho už máte, môžete pripojiť USB flash disk cez USB OTG kábel. Vo vyskakovacom okne musíte súhlasiť so spustením StickMount a program automaticky rozpozná disk a podľa toho ho pripojí. Nájdete ho na ceste /sdcard/usbStorage/sda1. Ak chcete bezpečne odstrániť jednotku Flash, znova prejdite do programu a vyberte príkaz „Odpojiť“.

Ďalšou dobrou aplikáciou, ktorá stojí za zmienku, je USB OTG Helper (vyžadujú sa aj práva root). Princíp činnosti je podobný tomu, ktorý je opísaný vyššie.

Druhý dôvod Dôvodom, prečo vaše zariadenie nemusí vidieť flash disk, je to, že jednoducho štandardne nečíta niektoré systémy súborov, ako napríklad NTFS.

V takom prípade musíte pomocou počítača preformátovať jednotku flash na exFAT alebo FAT32.

Ale čo ak momentálne nie je PC? Potom môžete použiť aplikáciu Paragon NTFS & HFS+, ktorá podporuje formát NTFS a umožňuje manipulovať s digitálnymi súbormi, ktoré majú podobný súborový systém (budete ho potrebovať pri inštalácii).

Snažili sme sa vám čo najpodrobnejšie povedať, ako pripojiť flash disk k zariadeniu Android a importovať súbory do vášho zariadenia a späť na externý flash disk. Ak máte po prečítaní článku stále nejaké otázky, kontaktujte nás a my vám dáme všetky písmená i. Veľa štastia!


Obr. 1 Ilustrácia fungovania zariadenia Android v režimoch USB Host a Accessory (obrázok zo stránky http://developer.android.com)

Upozorňujeme, že použitie USB nie je jediný spôsob komunikácie s rovnakým domácim zariadením. Android umožňuje využívať aj NFC, Wi-Fi P2P, SIP, ako aj štandardné sieťové pripojenie. Vývojár má teda vo svojom arzenáli dostatok príležitostí na realizáciu svojich najdivokejších nápadov.

Ďalšou častou možnosťou komunikácie s rôznymi zariadeniami je stále použitie USB-COM adaptéra. Na internete je materiál o používaní adaptéra USB-COM v systéme Android - pozri napríklad. Popularita tohto spojenia je spôsobená prítomnosťou veľkého množstva zariadení už vyvinutých pomocou rôznych mikrokontrolérov, s ktorými komunikácia prebieha pomocou COM portu (sériový port), ktorý bol pred 10 rokmi takmer štandardným spôsobom prenosu dát z počítač na podomácky vyrobený kus hardvéru.

V porovnaní s COM portom môže použitie USB výrazne zvýšiť rýchlosť prenosu dát a urobiť tento proces užívateľsky príjemnejším. Prenosová rýchlosť, ktorá je aj v prípade nízkorýchlostných zariadení (klávesnice, myši, joysticky) 10-1500 Kbps, jednoduchosť a nízka cena kabeláže a pripojení, samoidentifikácia zariadení s automatickou konfiguráciou, skrytie detailov elektrické pripojenie od koncového užívateľa (plus možnosť odpojenia kábla bez vypnutia zariadení), kontrola chýb a ich obnova na protokolovej úrovni - to sú nepopierateľné výhody tejto technológie (pozri str. 12).

Vo všeobecnosti, keď hovoríme o použití USB na prenos dát, bolo by užitočné spomenúť knihu P. Agurova „USB Interface“. Aj keď je na internete často kritizovaná a naposledy vyšla v roku 2006, už viackrát pomohla nájsť správne riešenie pri hľadaní informácií o rôznych aspektoch aplikácie tejto technológie. Kniha sa zaoberá problematikou od výberu mikroobvodu a návrhu obvodu pre ovládač až po napísanie programu mikrokontroléra a príklady programovania prenosu dát cez USB protokol z počítača. Nie je možné neuviesť „primárny zdroj“ údajov o tejto problematike - webovú stránku neziskovej organizácie USB IF (USB Implementers Forum), ktorá vyvíja špecifikácie pre toto rozhranie -, hoci tento materiál je v angličtine. Práve tam však nájdete komplexné informácie o zariadení s rozhraním USB. Existuje dobrý preklad častí špecifikácie - . Odkaz môžu vidieť aj záujemcovia o softvérové ​​riešenia zo strany mikrokontrolérov.

Tento článok je určený predovšetkým tým, ktorí majú akékoľvek elektronické zariadenie (vyvinuté nezávisle alebo niekým iným), ktorého protokol výmeny dát je dobre známy (napríklad už existuje program, ktorý s týmto zariadením pracuje vo Windows/Linux) a chcel by som mať program, ktorý s tým pracuje v systéme Android.

Trochu o triedach zariadení USB

Je potrebné poznamenať, že vývoj softvéru na komunikáciu s konkrétnym zariadením je veľmi závislý od jeho implementácie na úrovni mikrokontroléra. Z pochopiteľných dôvodov nie je možné uviesť príklady komunikačných programov pre všetky typy USB zariadení v jednom článku (počiatočné informácie o programovaní rôznych typov zariadení nájdete v). Obmedzíme sa však na predstavenie kódu, ktorý implementuje vyhľadávanie zariadenia a prístup k jeho kontrolným bodom na výmenu informácií. Budeme tiež analyzovať odosielanie údajov na príklade jedného z typov zariadení USB, konkrétne zariadení triedy HID (human interface device). Do tejto triedy patria „pomalé“ zariadenia ako klávesnica, myš, joystick a existuje množstvo príkladov jej implementácie pomocou rôznych mikrokontrolérov v sieti (sú napr. in).

Prečo je trieda HID taká populárna medzi výrobcami rôznych podomácky vyrobených zariadení? Aby sme citovali Wikipédiu: “Okrem podrobných špecifikácií klasických vstupných zariadení (ako sú klávesnice a myši) štandard HID definuje špeciálnu triedu zariadení bez podrobných špecifikácií. Táto trieda sa nazýva USB HID Consumer Control a je to v podstate neregulovaný komunikačný kanál so zariadením. V tomto prípade zariadenie používa rovnaké štandardné ovládače pre operačný systém ako myš a klávesnica. Takto je možné vytvoriť USB zariadenie, ktoré nevyžaduje vytváranie a inštaláciu špeciálnych ovládačov vo väčšine bežných počítačových operačných systémov.“ Ostáva len dodať, že táto špecifikácia funguje aj v OS Android (firmvér CyanogenMod nevynímajúc).

Jednou z možností výmeny dát s HID zariadením je prerušený prenos, ktorý sa využíva pri potrebe preniesť malé dátové pakety (maximálna veľkosť paketu závisí od prenosovej rýchlosti a pohybuje sa od 64 do 1024 bajtov) po stanovenom časovom intervale. . Balík na prenos sa nazýva správa (anglicky - správa, pozri s. 71, 95). Táto dĺžka správy zvyčajne postačuje na výmenu informácií s podomácky vyrobeným zariadením, napríklad 64 bajtov informácií v jednom pakete je dosť veľa pre kontrolór, pretože 1 bit informácie stačí na prenos stavov LED; alebo jednoduchý snímač.

Požadované nástroje

Budeme teda potrebovať tablet alebo telefón s verziou Androidu nie nižšou ako 3.1. Tu je potrebné poznamenať, že vyššie uvedené rozhranie USB Host API nie je plne implementované na všetkých mobilných zariadeniach (je to uvedené aj na webovej stránke developer.android.com, pozri odkaz). V niektorých tabletoch/telefónoch sa USB konektor používa len na nabíjanie a komunikáciu s osobným počítačom. Ešte raz čitateľa odkážem na zoznam mobilných zariadení vhodných alebo nevhodných pre naše experimenty (pozri).

Ďalej budete potrebovať nejaké USB zariadenie (na prvé experimenty vám postačí obyčajný USB flash disk), OTG adaptér (On-The-Go - viď obr. 2) a/alebo USB kábel na komunikáciu s zariadenie. Wikipedia o OTG hovorí: „Pri pripájaní cez USB OTG je poradie zariadenia (master alebo slave) určené prítomnosťou alebo absenciou prepojky medzi kolíkmi 4 a 5 v zástrčke prepojovacieho kábla. V kábli USB OTG je takáto prepojka nainštalovaná iba v jednom z dvoch konektorov (pozri). Preto potrebujeme taký jumper na boku mobilného zariadenia.


Obr.2 Rozdiely v zapojení bežného USB kábla a OTG kábla (obrázok z http://tech.firstpost.com)

Takýto OTG kábel pre svoje zariadenie môžete prispájkovať sami. Aby ste to dosiahli, musíte si kúpiť vhodný konektor v obchode s rádiom a autor napríklad použil starý kábel z prenosného pevného disku:

Dobrým pomocníkom pri vašej práci bude aj program USB Device Info nainštalovaný z úložiska Google Play Market. Program dokáže rozpoznať zariadenia pripojené k USB konektoru tabletu/telefónu pomocou Java API aj linuxového jadra. To znamená, že ak vaše zariadenie nie je detekované pomocou Java USB Host API v USB Device Info, potom bude s najväčšou pravdepodobnosťou márne používať akýkoľvek (vrátane vášho vlastného) Android program napísaný pomocou Java pre toto mobilné zariadenie a USB Host. API.

Niekedy je veľmi užitočný aj výstup informácií príkazom lsusb operačného systému Linux. Pomocou prepínačov -v a -d lsusb zobrazí všetko alebo takmer všetko o zariadení USB, ktoré vývojár softvéru potrebuje pre zariadenia tejto triedy (pozri obr. 3).


Obr.3 Príklad výstupu príkazov lsusb a lsusb -v -d

Ďalej potrebujete počítač s nainštalovanou súpravou Android SDK a integrovaným vývojovým prostredím (IDE) Eclipse s doplnkom ADT (hoci si vystačíte iba so súpravou SDK). Môžete vidieť, ako vytvoriť a nainštalovať aplikáciu pre Android, napríklad na, alebo na internete.

A, samozrejme, potrebujete aspoň túžbu dosiahnuť výsledky, bez toho to nejde! Podotýkam, že autorovi trvalo týždne usilovného hľadania informácií, kým objasnil niektoré technické problémy týkajúce sa používania USB v systéme Android.

Java triedy pre prácu s USB v Android API

Takže, ako sa hovorí na webovej stránke vývojárov rozhrania USB Host API pre Android (pozri) - „skôr ako začnete, je dôležité pochopiť, aké triedy budete používať vo svojej práci. Tabuľka 1 poskytuje popis najdôležitejších tried pre prácu s rozhraním USB Host API (pokus o preklad informácií z http://developer.android.com).

Tabuľka 1. Popis tried pre prácu s USB v systéme Android

Názov triedy Popis
USBManager Umožňuje vám vytvárať zoznamy a komunikovať s pripojenými zariadeniami USB.
Umožňuje zistiť pripojené USB zariadenie a vymieňať si s ním dáta.
USBDevice Predstavuje pripojené USB zariadenie a obsahuje metódy prístupu k jeho identifikačným informáciám, rozhraniam a koncovým bodom.
Predstavuje pripojené USB zariadenie a obsahuje metódy prístupu k jeho identite, rozhraniam a koncovým bodom.
Rozhranie USB Predstavuje rozhranie USB zariadenia, ktoré definuje sadu funkcií pre zariadenie. Zariadenie môže mať jedno alebo viac rozhraní, na ktorých môže komunikovať.
Predstavuje „rozhranie“ zariadenia USB, ktoré definuje sadu funkcií pre toto zariadenie. Jedno zariadenie môže mať jedno alebo viac rozhraní na výmenu informácií.
USBKoncový bod Predstavuje koncový bod rozhrania, ktorý je komunikačným kanálom pre toto rozhranie. Rozhranie môže mať jeden alebo viac koncových bodov a zvyčajne má vstupné a výstupné koncové body na obojsmernú komunikáciu so zariadením.
Predstavuje "koncový bod" rozhrania, ktorý je komunikačným kanálom pre toto rozhranie. Rozhranie môže mať jeden alebo viac koncových bodov a zvyčajne má koncové body na prijímanie informácií a na ich prenos.
USBDeviceConnection Predstavuje spojenie so zariadením, ktoré prenáša údaje na koncových bodoch. Táto trieda vám umožňuje posielať dáta tam a späť synchrónne alebo asynchrónne.
Predstavuje „spojenie“ s daným zariadením. Vyžaduje sa na prenos údajov do koncového bodu. Táto trieda vám umožňuje prijímať alebo prenášať údaje synchrónne alebo asynchrónne.
USBRequest Predstavuje asynchrónnu požiadavku na komunikáciu so zariadením prostredníctvom pripojenia UsbDeviceConnection.
Predstavuje asynchrónnu požiadavku na komunikáciu so zariadením prostredníctvom pripojenia UsbDeviceConnection.
USBConstants Definuje konštanty USB, ktoré zodpovedajú definíciám v linux/usb/ch9.h jadra Linuxu.
Definuje konštanty, ktoré zodpovedajú definíciám v linux/usb/ch9.h jadra Linuxu.

Takmer vo všetkých prípadoch použitia USB Host API programátor pri svojej práci používa tieto triedy. Algoritmus ich použitia vyzerá asi takto: definujeme zariadenia (cieľom je programový prístup k triede UsbDevice) pripojené k hostiteľovi (mobilnému zariadeniu) pomocou UsbManager. Keď sa získa softvérový prístup k zariadeniu, je potrebné určiť vhodné rozhranie UsbInterface a UsbEndpoint na komunikáciu so zariadením. Keď budete mať koncový bod k dispozícii, otvorte UsbDeviceConnection a komunikujte so zariadením USB. Ak koncový bod pracuje v režime asynchrónneho prenosu, používame triedu UsbRequest.

Skúsme na to všetko prísť vytvorením jednoduchej aplikácie, ktorá pomocou tohto API zistí zariadenie pripojené k hostiteľovi so systémom Android OS a zobrazí o ňom nejaké informácie na obrazovke telefónu alebo tabletu.

Vytvorte projekt

V Eclipse sa projekt vytvára pomocou položiek ponuky Súbor->Nový->Projekt aplikácie pre Android. Všimnite si tiež, že nižšie uvedený kód je vypožičaný zo vzorových aplikácií dodávaných s Android SDK (priečinok android sdk sample/android-N(API Level)/USB) hovoríme o ovládacom programe hračiek Missile Launcher USB (pozri obr. 4) Ukážka aplikácie sa sťahujú cez Android SDK Manager (zaškrtnite políčko - Samples for SDK). V nižšie uvedených zoznamoch sú príklady kódu poskytnuté s komentármi, ktoré vysvetľujú, čo sa deje.


Obr.4 Zábavná hračka "Raketomet"

Pri vytváraní projektu si nezabudnite zaškrtnúť požadovanú API Level vo voľbe Minimum Requared SDK (API Level 12, zodpovedajúca Androidu verzie 3.1 /Honeycomb/, alebo vyššej). Projekt bude mať veľmi jednoduché užívateľské rozhranie – hlavné okno (Activity) a TextView na zobrazovanie informácií. Podobný projekt je podrobne diskutovaný v.

V automaticky vytvorenej triede pre Aktivitu nášho projektu je potrebné definovať nasledujúce inštancie tried pre prácu s USB:

súkromné ​​TextView lgView;
súkromný UsbManager mUsbManager;
súkromné ​​​​usbDevice mDevice;
súkromné ​​pripojenie mConnection UsbDevice;
private UsbEndpoint mEndpointIntr;

LgView = (TextView) findViewById(R.id .logTextView ) ;

a získajte prístup k triede UsbManager

MUsbManager = (UsbManager) getSystemService(Context .USB_SERVICE ) ;

Vytvorme tiež obsluhu udalosti onResume(). Dosiahneme cieľ – aby sa pri aktivácii okna našej aplikácie aktualizovali informácie o pripojených zariadeniach (pozri Výpis 1).

Výpis 1. Obsluha udalosti OnResume().

public void onResume() (
super.onResume();

//naplňte kontajner zoznamom zariadení
HashMap< String , UsbDevice>deviceList = mUsbManager.getDeviceList();
Iterátor< UsbDevice>deviceIterator = deviceList.values().iterator();

lgView.setText("Počet zariadení:" + deviceList.size());

while (deviceIterator.hasNext()) (
UsbDevice device = (UsbDevice) deviceIterator.next () ;

//príklad určenia ProductID zariadenia
\n"+ "Device ProductID: " + device.getProductId());
}
//definujte zámer popísaný vo filtri
// intent AndroidManifest.xml
Zámer zámer = getIntent() ;
lgView.setText(lgView.getText()+" \n"+ "zámer: " + zámer);
String action = intent.getAction();

//ak je zariadenie pripojené, pošlite odkaz na
//na funkciu setDevice().
UsbDevice device = (UsbDevice) intent.getParcelableExtra(UsbManager.EXTRA_DEVICE) ;
if (UsbManager.ACTION_USB_DEVICE_ATTACHED .rovná sa (akcia) ) (
setDevice(zariadenie) ;
lgView.setText(lgView.getText()+" \n" + "UsbManager.ACTION_USB_DEVICE_ATTACHED.equals(akcia) je PRAVDA") ;
) else if (UsbManager.ACTION_USB_DEVICE_DETACHED .rovná sa (akcia) ) (
if (mDevice != null && mDevice.equals (device) ) (
setDevice(null) ;
lgView.setText(lgView.getText()+" \n" + "UsbManager.ACTION_USB_DEVICE_DETACHED.equals(akcia) je PRAVDA") ;
}
}

Ďalej vytvoríme funkciu setDevice() pre Aktivitu, ktorá je nevyhnutná pre prácu s naším zariadením (pozri Výpis 2). V obslužnom programe onResume() a vo funkcii setDevice() sme presne postupovali podľa algoritmu na používanie rozhrania USB Host API opísaného v predchádzajúcej časti.

Výpis 2. funkcia setDevice().

private void setDevice(zariadenie UsbDevice) (
lgView.setText(lgView.getText()+" \n"+ "setDevice" + zariadenie);

//určenie dostupných rozhraní zariadení
if (device.getInterfaceCount() != 1 ) (

LgView.setText (lgView.getText() + " \n"+ "nepodarilo sa nájsť rozhranie" );
vrátiť ;
}
UsbInterface intf = device.getInterface(0);

//definovanie koncových bodov zariadenia
if (intf.getEndpointCount() == 0 ) (

LgView.setText (lgView.getText() + " \n"+ "nepodarilo sa nájsť koncový bod" );
vrátiť ;
) inak (
lgView.setText(lgView.getText()+" \n"+ "Počet koncových bodov: " + intf.getPočet koncových bodov () );
}

UsbEndpoint epIN = null ;
UsbEndpoint epOUT = null ;

//hľadajte koncové body na prenos cez prerušenia
for (int i = 0; i< intf.getEndpointCount () ; i++ ) {
if (intf.getEndpoint(i).getType() == UsbConstants.USB_ENDPOINT_XFER_INT) (
if (intf.getEndpoint(i).getDirection() == UsbConstants.USB_DIR_IN) (
epIN = intf.getEndpoint(i) ;
lgView.setText(lgView.getText()+" \n"+ "IN endpoint: " + intf.getEndpoint (i) );
}
inak(
epOUT = intf.getEndpoint(i) ;
lgView.setText(lgView.getText()+" \n"+ "OUT koncový bod: " + intf.getEndpoint (i) );
}
) else ( lgView.setText ( lgView.getText() + " \n" + "žiadne koncové body pre INTERRUPT_TRANSFER") ; }
}

MDevice = zariadenie;
mEndpointIntr = epOUT;

//otvorte zariadenie na prenos dát
if (zariadenie != null ) (
Pripojenie UsbDeviceConnection = mUsbManager.openDevice (zariadenie) ;
if (spojenie != null && connection.claimInterface (intf, true ) ) (

LgView.setText (lgView.getText() + " \n"+ "otvoriť zariadenie ÚSPECH!" );
mConnection = pripojenie;

) inak (

LgView.setText (lgView.getText() + " \n"+ "Otvoriť zariadenie ZLYHALO!" );
mConnection = null ;
}
}
}
}

Okrem vyššie uvedeného kódu, ktorý, ako už pozorný čitateľ zrejme uhádol, otvára zariadenie na príjem a prenos dát, ostáva už len použiť protokol výmeny dát, ktorý, opakujem, by mal byť vývojárom dobre známy. Predstavíme iba, ako sme sľúbili, kód, ktorý odošle určitý dátový paket správy do zariadenia HID pomocou prenosu prerušenia, triedu UsbRequest a zodpovedajúci koncový bod - pozri Výpis 3.

Výpis 3. Príklad kódu na odosielanie údajov do zariadenia

//určenie veľkosti vyrovnávacej pamäte na odoslanie
//založené na maximálnej veľkosti paketu
int bufferDataLength = mEndpointIntr.getMaxPacketSize () ;

lgView.setText(lgView.getText()+" \n"+ mEndpointIntr.getMaxPacketSize());

ByteBuffer buffer = ByteBuffer.allocate (bufferDataLength + 1 ) ;

UsbRequest request = new UsbRequest() ;

buffer.put(správa);

request.initialize(mConnection, mEndpointIntr) ;

request.queue(buffer, bufferDataLength) ;

if (request.equals(mConnection.requestWait()) )

//odoslanie bolo úspešné
//lgView.setText(lgView.getText() + "\n" + "odosielanie CLEAR!!!");

chytiť (výnimka ex)

//Je tam niečo zle...
//lgView.setText(lgView.getText() + "\n" + "odosielanie nie je jasné...");

Filtrovanie zariadení v súbore AndroidManifest.xml

Hoci naša aplikácia nemusí hľadať konkrétne zariadenie so známym VID (Vendor-ID) a PID (Product-ID), inžinieri spoločnosti Google neposkytujú príklady aplikácií bez sekcie intent-filter v súbore manifestu a autorovi sa nepodarilo spustiť program bez filtrovania zariadení v súbore AndroidManifest.xml.

Dovoľte mi pripomenúť, že Vendor-ID a Product-ID sú jedinečné identifikátory USB zariadení. To znamená, že pomocou filtrovania môžete vytvoriť aplikáciu, ktorá interaguje iba s určitým zariadením alebo nejakou triedou zariadení. Upozorňujeme, že výrobcovia zariadení sa musia na týchto číslach dohodnúť s organizáciou USB IF.

Aplikácia, ktorej súbor manifestu je zobrazený vo výpise 4 a ktorej súbor podmienok filtra je napríklad v zozname 5, úspešne rozpoznáva USB flash disky pripojené k mobilnému zariadeniu, ale nerozpozná klávesnicu a myš, ktoré má autor. Túto aplikáciu spolu so zdrojovým kódom si môžete stiahnuť z odkazu.

Výpis 4. Súbor AndroidManifest.xml


" > http://schemas.android.com/apk/res/android"
> package="ru.learn2prog.usbhostexample"
android:versionCode="1"
android:versionName="1.0" >


android:minSdkVersion="12"
android:targetSdkVersion="14" />


android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/názov_aplikácie"
android:theme="@style/AppTheme" >

android:name = "ru.learn2prog.usbhostexample.MainActivity"
android:label="@string/názov_aplikácie" >
>

"android.intent.category.DEFAULT" />

"android.intent.category.LAUNCHER" />

>

>

>
"android.hardware.usb.action.USB_DEVICE_ATTACHED"
android:resource="@xml/device_filter" />
>
>

>

Výpis 5. Súbor filtra device_filter.xml (adresár /res/xml)

>

>

Operácie na zostavenie a inštaláciu našej aplikácie sa nelíšia od bežných (pozri príklady v,). Chcel by som upriamiť vašu pozornosť na akcie intent filtra - keď je zariadenie pripojené k hostiteľovi, OS požiada používateľa, aby spustil našu aplikáciu.

Literatúra/odkazy: 11.
12.
13. http://developer.android.com/guide/topics/connectivity/usb/host.html - prehľad tried potrebných na prácu s USB v systéme Android
14. odkaz na zdroje aplikácie

Napriek podpore smartfónu alebo tabletu s Androidom pre SD karty až do 32 GB je niekedy potrebné pripojiť externé „úložisko“ - prenosné pevné disky a flash disky.

Podstata problému s jednotkami USB-Flash na zariadeniach so systémom Android

Moderné flash disky majú kapacitu až 128 GB. Toto množstvo pamäte nie je zbytočné, najmä keď majiteľ smartfónu alebo tabletu sťahuje a distribuuje naraz veľa filmov, hudby, programov atď. Podstata problému je nasledovná.

  • Do každého modulu gadget nemôžete nainštalovať viac ako jednu kartu SD - nie sú to karty SIM, v smartfóne alebo tablete je iba jeden slot pre kartu SD. Veľkou otázkou sú zariadenia s dvomi microSD slotmi. Nechýbajú ani pamäťové karty s kapacitou terabajtu a viac, to všetko je vecou budúcnosti.
  • Nie je vždy možné preniesť váš obsah z vášho zariadenia do cloudu a späť: mobilný internet nie je úplne neobmedzený a vyhľadávanie Wi-Fi po meste alebo „tethering“ na router s internetom od Rostelecomu doma aj v práci tiež nie je možnosťou.
  • Nepretržitá výmena desiatok gigabajtov prevádzky za deň cez mobilné siete a Wi-Fi, smartfón alebo tablet spotrebuje veľa energie. Na dobitie gadgetu potrebujete zásuvku alebo výkonnú PowerBank s batériou s kapacitou 10 ampérhodín a viac. Vo všeobecnosti musíte všetky svoje „napumpované“ veci niekam uložiť a zároveň zostať mobilný a slobodne si vybrať.
  • Na to musíte pripojiť ďalšie „flash disky“ cez microUSB. Ideálnou možnosťou pre tých, ktorí často chodia na služobné cesty alebo cestujú, je nosiť v taške tablet a niekoľko 32–128 GB flash diskov.

    Ako pripojiť flash disk k gadgetu Android cez OTG

    OTG je USB-microUSB adaptér, náhrada USB kábla so zariadením Card Reader. Zaberá málo miesta - nie viac ako štandardný flash disk. V tomto prípade musí byť flash disk naformátovaný na FAT32 - nie všetko ide hladko so súborovým systémom NTFS pre operačný systém Android.

    Existuje zložitejší spôsob: nainštalujte si špeciálnu aplikáciu pre Android, ktorá umožní vášmu smartfónu alebo tabletu pracovať s médiami NTFS. Môžu to byť teda exFAT/NTFS pre Total Commander, Paragon NTFS & HFS+ a ich analógy.

  • Adaptér OTG musí mať USB konektor pre zástrčku flash disku. To je presne to, čo potrebujete. Väčšina moderných Android zariadení nemá miniUSB konektor, ale microUSB konektor. Nájdite v obchode OTG adaptér požadovaného štandardu. OTG adaptér je dostupný ako pevné zariadenie, tak aj ako špeciálny microUSB kábel.

    Potrebujete OTG so zásuvkou, nie zástrčku pre USB disky

  • Po pripojení flash disku spustite na svojom zariadení „Správca súborov“ – jeho obsah by sa mal zobraziť na adrese „/sdcard/usbStorage“.

    Vyberte priečinok USBdisk

  • Ak flash disk nie je čitateľný, potrebujete špeciálne aplikácie pre Android. Niektoré z nich vyžadujú práva root.

    Ako získať root prístup

    Aplikácie, ktoré vám umožňujú získať root prístup bez použitia počítača: FramaRoot, Universal Androot, Visionary+, GingerBreak, z4root, BaiduRoot, Romaster SU, Towelroot, RootDashi, 360 Root atď.

    Aplikácie, ktoré „hacknú“ root cez PC: SuperOneClick, Unrevoked, GenoTools, vRoot, MTKDroidTools atď.

    Pamätajte, že získaním práv root stratíte záruku dodávateľa a riskujete poškodenie vášho modulu gadget.

    Ďalším spôsobom je zmeniť licencovaný firmvér Android na „vlastný“ s nepripojeným koreňovým prístupom.

    Zobrazenie obsahu flash disku na smartfóne alebo tablete so systémom Android pomocou aplikácií tretích strán

    Aplikácia USB Media Explorer

    Ak si chcete zjednodušiť proces prístupu k flash disku, použite platenú aplikáciu USB Media Explorer. Starý názov programu je Nexus Media Importer; pôvodne bol vyvinutý pre zariadenia Nexus, ale rýchlo rozšíril rad podporovaných smartfónov a tabletov so systémom Android. Koreňové práva nie sú potrebné, program je platený.

    Ak vám toto riešenie nevyhovuje, budete musieť trochu popracovať.

    Riešenia založené na programe StickMount

    Aplikácia StickMount je jednou z najznámejších a vyžaduje práva root. Funguje v spojení s akýmkoľvek správcom súborov Android, napríklad ES Explorer. Obe aplikácie sú dostupné na Play Market.

  • Po inštalácii otvorte StickMount, pripojte flash disk a potvrďte požiadavku na automatické spustenie StickMount pri pripájaní flash diskov.

    Potvrďte svoju požiadavku

  • Druhou požiadavkou bude aplikácia StickMount pýtajúca sa na oprávnenia Root v systéme Android. Potvrďte kliknutím na tlačidlo Grant. Nezačiarknite políčko vedľa položky „Opýtať sa ma znova v budúcnosti“.

    Potvrďte stlačením tlačidla Grant

  • V oznamovacej lište (v hornej časti) sa zobrazí upozornenie, že obsah flash disku sa nachádza na '/sdcard/usbStorage/' - teraz otvorte aplikáciu ES Explorer.

    Zobrazenie informácií o zaťažení jednotky Flash

  • Jednotka Flash umožňuje čítanie/zápis.

    Všetky vaše súbory sú teraz k dispozícii

    Pripojenie USB flash diskov k zariadeniam, ktoré nemajú miniUSB/microUSB

    Množstvo spoločností, ktoré nie sú také známe ako ZTE, Huawei, Sony a ich ďalší konkurenti, inštaluje neštandardné konektory rozhrania. OTG adaptéry s miniUSB/microUSB absolútne nie sú vhodné pre prístroje s vysoko štandardizovaným konektorom bez špeciálneho OTG adaptéra. Hľadajte na Ebay alebo AliExpress adaptér OTG, ktorý zodpovedá štandardu zásuvky rozhrania vášho smartfónu alebo tabletu. Ďalšie kroky na získanie softvérového prístupu k vašim flash diskom sú rovnaké.

    Iné spôsoby pripojenia flash disku k smartfónu alebo tabletu so systémom Android

    Existujú nasledujúce metódy:

  • Pripojte tablet/smartfón aj USB flash disk k počítaču.
  • Pripojte flash disk k smartfónu/tabletu cez špeciálne zariadenie – CarsReader. Vhodné pre majiteľov SD/MiniSD kariet, USB MemoryStick flash pamäte.
  • Pripojenie pamäťovej karty microSD pomocou špeciálneho adaptéra, ktorý má konektor USB, je podobné bežnému USB flash disku.
  • Video: Pripojenie ďalších zariadení k smartfónu a tabletu vrátane flash diskov: problémy a riešenia

    Pripojením flash diskov a iných úložných zariadení k smartfónu alebo tabletu so systémom Android si uvoľníte ruky, pokiaľ ide o organizáciu ukladania údajov, ktoré nosíte so sebou. To sa vám môže veľmi hodiť na služobných cestách a cestovaní. Veľa štastia!