як використовувати команду adb для натискання файлу на пристрої без sd карти


104

Як натиснути файл з комп'ютера на андроїд-пристрій, що не має в ньому SD-карти. Я намагався:

C:\anand>adb push anand.jpg /data/local
3399 KB/s (111387 bytes in 0.032s)

C:\anand>adb push anand.jpg /data/opt
3199 KB/s (111387 bytes in 0.034s)

C:\anand>adb push anand.jpg /data/tmp
3884 KB/s (111387 bytes in 0.028s)

вище команд для переміщення файлу anand.jpgна пристрій, але я не отримав цей jpgфайл у пристрої. Я не отримав жодного результату успіху в cmd-підказці, я отримав лише:

3399 KB/s (111387 bytes in 0.032s).

3
Спробуйте adb shell "cd /data/local && mkdir tmp"потім adb push anand.jpg /data/local/tmp. Як перевірити файл на пристрої adb shell?

@RC Я використовую команду ls для перевірки файлів. Я отримав це якнайменше на вигляд DDMS на emulator.but все ще я не отримав це на пристрої. коли я намагаюся команду "adb push", вона показує, що пристрій не знайдено для реального пристрою. але adb пристрої показують пристрій.
Нікхіл Кумар

Я зупинив би емулятор, відключив пристрій, після того, як переконається, що пристрій перебуває в режимі налагодження, підключіть пристрій і повторіть спробу

1
Це питання видається поза темою, оскільки мова не йде про програмування. Дивіться, які теми я можу запитати тут у довідковому центрі. Можливо, обмін стеками на ентузіастів Android стане кращим місцем.
jww

Пропозиція RC для мене працювала в такому варіанті: adb shell "cd /sdcard && mkdir temp"тоді abd push x.apk /sdcard/temp"я потрапив у свій файл у папці temp на моїй sdcard і міг звідти спалахнути.
Kajetan Abt

Відповіді:


130

Від терміналу Ubuntu, що працює нижче, працює для мене.

./adb push '/home/hardik.trivedi/Downloads/one.jpg' '/data/local/'

Я працюю на Windows cmd підказка може у PLZ сказати мені у Windows, як це зробити.
Нікхіл Кумар

просто видаліть "./" і використовуйте прості adb або adb.exe. Переконайтеся, що ви знаходитесь у папці інструментів платформи, якщо ви не встановили шлях для Android.
Hardik Trivedi

2
Чи можемо ми це зробити, не вкорінюючи телефон?
Яків

2
@HardikTrivedi: Ви хочете сказати, що вкорінення потрібно для використання adb push загалом або для цього конкретного файлу? Я використовую adb push, щоб записати файл на SD-карту пристрою Android на не вкоріненому пристрої.
RenniePet

2
Для натискання команд працює і для не вкоріненого телефону, потрібна лише програма "data / folder".
Hardik Trivedi

33

Я зробив це за допомогою цієї команди:

синтаксис: adb push filename.extension /sdcard/0/

приклад: adb push UPDATE-SuperSU-v2.01.zip /sdcard/0/


1
щойно перемістив mp3-файл з mac osX на пристрій Android 5.0, і мені довелося записати ім’я файлу, який повинен бути на пристрої, тобто "adb push /file.mp3 /sdcard/fileOrOtherFileName.mp3"
DoruChidean

28

Виконайте такі дії:

перейдіть на Android Sdk, а потім на платформу-інструменти на своєму терміналі чи консолі

(на mac, за замовчуванням шлях: / Users / USERNAME / Library / Android / sdk / platform-tools)

Щоб перевірити встановлені на вашому пристрої SDCards (зовнішні та внутрішні), запустіть ці команди:

  • 1) ./adb оболонка (натисніть повернення / введення)
  • 2) cd - (натиснути повернення / введення)

тепер ви побачите список каталогів та файлів зі свого пристрою Android, який ви можете знайти / sdcard, а також / зберігання

  • 3) CD / storage (повернення / введення)
  • 4) ls (повернення / введення)

ви можете бачити sdcard0 (зазвичай sdcard0 - це внутрішнє сховище) та sdcard1 (якщо є зовнішня SDCard)

  • 5) вихід (повернення / введення)

вийти з оболонки adb

  • 6) ./adb push '/Users/SML/Documents/filename.zip' / storage / sdcard0 / path_to_store / (повернення / введення)

скопіювати файл


11

Іноді потрібне розширення,

adb push file.zip /sdcard/file.zip


1
У мене є LG Nexus 5, і ви не можете помістити в нього зовнішню sdcard, але частина внутрішньої пам'яті веде себе так, як це була sdcard. У цьому випадку sdcard - це лише каталог на кореневому рівні. Ви можете перевірити це за допомогою виклику 'adb shell' Коли ви знаходитесь в оболонці, викличте "ls" для переліку каталогів
cstuncsik

8

спочатку запустіть команду нижче

adb root
adb remount

Потім виконайте те, що ви ввели раніше

C:\anand>adb push anand.jpg /data/local
C:\anand>adb push anand.jpg /data/opt
C:\anand>adb push anand.jpg /data/tmp

4

У мене Nexus 4, тобто без зовнішнього сховища. Однак Android думає, що він має його, тому що він змонтує відокремлений розділ, який називається "сховище", встановлений у "/ storage / emulated / legacy", тому спробуйте натиснути на нього:adb push anand.jpg /storage/emulated/legacy


Для мого Nexus 4 /sdcard.file.zip працював як шарм.
sud007

4

Моє рішення (приклад із випадковим mp4 відео файлом):

  1. Встановлення файлу на пристрій:

    adb push /home/myuser/myVideoFile.mp4 /storage/emulated/legacy/
  2. Отримайте файл із пристрою:

    adb pull /storage/emulated/legacy/myVideoFile.mp4 

Для отримання шляху в коді:

String myFilePath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/myVideoFile.mp4";

Це все. Це рішення не дає проблем з дозволом, і воно працює чудово.

Останній пункт: я хотів змінити інформацію метаданих відео. Якщо ви хочете записати на свій пристрій, вам слід змінити дозвіл на AndroidManifest.xml. Додати цей рядок:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

3

Оскільки для різних версій існують різні шляхи. Ось загальне рішення:

Знайти шлях ...

  1. Введіть adb shellу командному рядку.
  2. Потім lsі Enter.

Тепер ви побачите файли та каталоги пристрою Android. Тепер за допомогою комбінації lsі cd dirNameзнайдіть шлях до внутрішнього або зовнішнього сховища.

У кореневому каталозі назви каталогів будуть подібні mnt, sdcard, emulator0,тощо

Приклад: adb push file.txt mnt/sdcard/myDir/Projects/


3

Спробуйте це застосувати у внутрішньому сховищі.

adb push my-file.apk ./storage/emulated/0/

Працює на пристрої One plus, без SD-карти.


0

Ви намагаєтесь записати в системні папки. З ADB у вас є кореневий (адміністратор) доступ, тому ви бачите системні папки, з яких SDCard є однією з них, щоб надіслати зображення, яке ви могли використовувати

D: \ програмні файли \ Android \ sdk \ платформа-інструменти \ adb push am файли \ android sdk \ adb.exe push C: \ Завантаження \ anand.jpg / sdcard / малюнки /

Примітка: C: \ Завантаження \ anand.jpg замініть на шлях та ім'я до зображення ..


0

Деякі версії Android не виконують належних завдань щодо оновлення стану файлової системи. Ви можете викликати явний намір оновити статус файлової системи. (Я щойно тестував після того, як опинився в тій же ситуації з ОП)

adb shell am broadcast -a android.intent.action.MEDIA_MOUNTED -d file:///

(Ви можете пройти певний файловий шлях замість file:///подібного file:///sdcard)


0

У моєму випадку у мене вже була вилучена SDCard, все ще зареєстрована в Android. Тому я довго натискав запис на своїй старій SDCard під:

Settings | Storage & USB

і вибрали "Забути".

Після цього нормальний

adb push myfile.zip /sdcard/

добре працював.


0

Це може бути найкраща відповідь, яку ви можете прочитати. Налаштування Android Studio Після цього просто перейдіть до перегляду та відкрити провідник пристроїв. Клацніть правою кнопкою миші папку та просто завантажте файл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.