- Sharing Content between Android apps
- Sharing text
- Sharing HTML text
- Receiving text
- Sharing files and images
- Receiving files
- The Support Library is your friend
- Share Image and Text using android Intent
- How intent opens share intent?
- Share text using intent
- Share image using intent
- Bluetooth content share html
- Содержание статьи
- Трюк 1: Используем BT для удаленного доступа к компьютеру
- Трюк 2: Контроль доступа с помощью BT
- Трюк 3: Снифаем BT-трафик из эфира
- Трюк 4: Работаем с BT-адаптером напрямую
- Трюк 5: Находим скрытые устройства
- Трюк 6: Перехватываем из эфира разговоры по гарнитуре
- Трюк 7: DDoS BT-устройств
- Share Link
Sharing Content between Android apps
Sharing is caring, as they say, but sharing on Android means something perhaps slightly different. ‘Sharing’ is really shorthand for sending content such as text, formatted text, files, or images between apps.
So if ‘sharing’ == sending content, it makes slightly more sense that it is implemented using ACTION_SEND (or ACTION_SEND_MULTIPLE) Intents and its dozen extras.
While that approach is perfectly valid, I prefer to use ShareCompat, a set of classes in the v4 Support Library designed to make it easy to build intents for sharing content.
Sharing text
Sharing plain text is, as you might imagine, a good place to start. In fact, there’s not a whole lot to it:
ShareCompat.IntentBuilder uses a fluent API where you can chain together multiple method calls, using only the ones you need. For sharing, one of the most important parts is picking the right mime type — this is how apps filter what type of content they can receive. By using text/plain, we signify that our Intent will only contain plain text. Then, of course, setText() is how we actually add the CharSequence to the Intent to send. And while you can certainly send styled text using setText(), there’s no guarantee that the receiving app will honor that styling, so you should ensure that the text is legible with or without styling.
You’ll note we then use resolveActivity() before calling startActivity(). As mentioned in Protecting Implicit Intents with Runtime Checks, this is critical to prevent an ActivityNotFoundException when there is no Activity available to handle the mime type you have selected. While probably not as much of a concern with text/plain, it may be much more common with other types.
Note: when you use startActivity(shareIntent), that respects any default apps the user has set (i.e., if they’ve previously selected sharing all “text/plain” items to a certain app). If you’d like to instead always show a disambiguation chooser, use the intent generated from IntentBuilder.createChooserIntent() as explained in the ACTION_CHOOSER documentation.
Sharing HTML text
Some apps, most notably email clients, also support formatting with HTML. The changes, compared to plain text, are fairly minor:
The differences here are that we use of setHtmlText() in place of setText() and a mime type of text/html replacing text/plain. Here ShareCompat actually does a little bit extra: setHtmlText() also uses Html.fromHtml() to create a fallback formatted text to pass along to the receiving app if you haven’t previously called setText() yourself.
Given that many of the apps that can receive HTML text are email clients, there’s a number of helper methods to set the subject, to:, cc:, and bcc: email addresses as well — consider adding at least a subject to any share intent for best compatibility with email apps.
Of course, you’ll still want to call resolveActivity() just as before — nothing changes there.
Receiving text
While the focus so far has been on the sending side, it is helpful to know exactly what is happening on the other side (if not just to build a simple receiving app to install on your emulator for testing purposes). Receiving Activities add an intent filter to the Activity:
The action is obviously the more critical part — without that there’s nothing that would denote this as an ACTION_SEND (the action behind sharing). The mime type, same as with our sending code, is also present here. What isn’t as obvious are the two categories. From the element documentation:
Note: In order to receive implicit intents, you must include the CATEGORY_DEFAULT category in the intent filter. The methods startActivity() and startActivityForResult() treat all intents as if they declared the CATEGORY_DEFAULT category. If you do not declare it in your intent filter, no implicit intents will resolve to your activity.
So CATEGORY_DEFAULT is required for our use case. Then, CATEGORY_BROWSABLE allows web pages to natively share into apps without any extra effort required on the receiving side.
And to actually extract the information from the Intent, the useful ShareCompat.IntentReader can be used:
Similar to IntentBuilder, IntentReader is just a simple wrapper that make it easy to extract information.
Sharing files and images
While sending and receiving text is straightforward enough (create text, include it in Intent), sending files (and particularly images — the most common type by far) has an additional wrinkle: file permissions.
The simplest code you might try might look like
And that almost works — the tricky part is in getting a Uri to the File that other apps can actually read, particularly when it comes to Android 6.0 Marshmallow devices and runtime permissions (which include the now dangerous READ_EXTERNAL_STORAGE and WRITE_EXTERNAL_STORAGE permissions).
My plea: don’t use Uri.fromFile(). It forces receiving apps to have the READ_EXTERNAL_STORAGE permission, won’t work at all if you are trying to share across users, and prior to KitKat, would require your app to have WRITE_EXTERNAL_STORAGE. And really important share targets, like Gmail, won’t have the READ_EXTERNAL_STORAGE permission — so it’ll just fail.
Instead, you can use URI permissions to grant other apps access to specific Uris. While URI permissions don’t work on file:// URIs as is generated by Uri.fromFile(), they do work on Uris associated with Content Providers. Rather than implement your own just for this, you can and should use FileProvider as explained in the File Sharing Training.
Once you have it set up, our code becomes:
Using FileProvider.getUriForFile(), you’ll get a Uri actually suitable for sending to another app — they’ll be able to read it without any storage permissions — instead, you are specifically granting them read permission with FLAG_GRANT_READ_URI_PERMISSION.
Note: we don’t call setType() anywhere when building our ShareCompat (even though in the video I did set it). As explained in the setDataAndType() Javadoc, the type is automatically inferred from the data URI using getContentResolver().getType(uriToImage). Since FileProvider returns the correct mime type automatically, we don’t need to manually specify a mime type at all.
If you’re interested in learning more about avoiding the storage permission, consider watching my Forget the Storage Permission talk or at least go through the slides, which covers this topic in depth at 14:55 (slide 11).
Receiving files
Receiving files isn’t too different from text because you’re still going to use ShareCompat.IntentReader. For example, to make a Bitmap out of an incoming file, it would look like:
Of course, you’re free to do whatever you want with the InputStream — watch out for images that are so large you hit an OutOfMemoryException. All of the things you know about loading Bitmaps still apply.
The Support Library is your friend
With both ShareCompat (and its IntentBuilder and IntentReader) and FileProvider in the v4 Support Library, you’ll be able to include sharing text, HTML text, and files in your app with the best practices by default.
Источник
Share Image and Text using android Intent
Aminullah Taj Muhammad
Nov 21, 2019 · 2 min read
In this article, we will learn how to share your required data using android intent. This article is part of the “Today I Learnt” category.
How intent opens share intent?
The intent is a class that helps to perform different actions like open ACTION_VIEW, ACTION_WEB_SEARCH, ACTION_SEARCH, etc. In this article, we’ll see about the action ACTION_SEND.
The ACTION_SEND helps to open the share intent where you will share your required data. Now we’ll learn how we share text and image using android Intent with the help of share intent. So, Let’s started.
Share text using intent
So, In this s e ction, we’ll share a simple text using intent. So follow this below code.
Share image using intent
A few days ago I had a task where I wanted to share the image with other apps. I searched many solutions on StackOverflow but those were not cases I wanted. So, I did it by in my own way using Picasso library. Here are the steps to do this.
Step 01: Add Picasso dependency in build.gradle(app)
Step 02: Add below code in onCreate() method.
Before Android 7.0 there were no restriction to share data on other apps but after Android 7.0 Google made some restrictions on data sharing. So, these lines will remove the sharing restrictions.
Step 03: After that, call this function on click listener.
So, this method will share the image on different apps. It takes the path/url of image and load into Bitmap. Picasso converts it into the bitmap and then we create a method that returns URI from the bitmap. So, the below method returns the URI from a bitmap.
For complete code click here
Fewwwwwwww finally done 😃.
Thanks for reading if you want any help then follow me on Github, Twitter.
Источник
Bluetooth content share html
Содержание статьи
Все отлично знают, что с помощью Bluetooth можно передать файл с девайса на девайс или подключить беспроводную гарнитуру. Но этим его возможности не ограничиваются. Имея при себе нужный инструмент, можно творить настоящие чудеса. Так почему бы не попробовать себя в роли фокусника?
Встроенный модуль технологии Bluetooth (или, если более официально, IEEE 802.15.3) давно перестал быть диковинкой. Стоимость модуля настолько мизерна, что не встраивает его в мобильный, ноутбук или КПК только ленивый производитель. Да и то – по соображениям маркетинга. Словом, Bluetooth используют практически все. Но лишь единицы знают, что, используя технологию, рискуют выдать свои конфиденциальные данные. Но начнем все-таки с хорошего!
Трюк 1: Используем BT для удаленного доступа к компьютеру
Как-то для проведения презентации я пригласил одну длинноногую подругу – нажимать кнопку «пробел», чтобы перелистывать слайды в Power Point. Это удовольствие стоило мне недешевого обеда и двух часов пустых разговоров с Barbie girl. После этого я твердо решил: в следующий раз проблему отсутствия пульта ДУ я обойду по-другому. И обошел, воспользовавшись мобильником! Да-да, прямо с телефона можно перелистывать слайды, управлять музыкой – и делать еще бог знает что. Главное, чтобы на мобильнике и компьютере были установлены BT-модули. Мало того, что сэкономишь деньги и силы, так еще и выглядеть будешь непростительно модно. Показать такой фокус способен каждый, кто заюзает утилиту
Bluetooth Remote Control, не столь давно обновившуюся до версии 3.0. Она позволяет управлять компьютером с экрана любого мобильного телефона. Все очень просто. На компьютер ставится специальная серверная часть, а на телефон – программа-клиент, написанная на Java (требуется MIDP 2.0). После настройки нехитрой схемы ты сможешь дистанционно управлять мышкой и клавиатурой компа. И самое главное – получишь доступ к удаленному рабочему столу. Настоящий Remote Desktop прямо с экрана мобильного телефона! Ну, а с длинноногой подругой время можно провести куда более удачно. Bluetooth Remote Control пригодится и здесь: чтобы поставить
романтическую музыку :).
Трюк 2: Контроль доступа с помощью BT
Если ты работаешь в комнате, где вместе с тобой сидит с десяток коллег, тебе наверняка приходилось блокировать компьютер, когда уходишь в другое помещение. А что? Не успеешь отойти, как кто-нибудь уже покопается на твоем харде. Расклад не самый приятный. В общем, лочить компьютер нужно обязательно, вопрос в том – как? Можно использовать стандартные возможности винды и по десять раз на дню вводить длиннющий пароль. Или же делать это красиво с помощью технологии Bluetooth. Все просто, как дважды два. Отходишь от компьютера – и он тут же блокируется. Возвращаешься обратно – и лока как не бывало! Единственное условие: как в компьютере, так и в мобильном телефоне должен быть установлен модуль
Bluetooth, а в системе заинсталена программа LockItNow ( ты легко можешь написать такую программу и сам, у нас была целая статья ) . Впрочем, приятелям и коллегам можно рассказывать о телепатических возможностях, а потом продавать секрет за деньги :). Кстати говоря, если под рукой BT-модуля нет, то его можно заменить телефоном, который поддерживает «синий зуб» (подключи по COM-порту).
Трюк 3: Снифаем BT-трафик из эфира
Мастерство начинается с понимания. Не возникало ли у тебя когда-нибудь желания посмотреть внутрь протокола и узнать, как происходит обмен данными через «синий зуб»? Прослушивание трафика Bluetooth может выполняться только «в себя», то есть выполняется перехват исходящего и входящего трафика узла, на котором ты отдал команды. В этом деле немаловажное значение имеет так называемый Host Controller Interface (HCI), который позволяет обращаться к передатчику. HCI-узел обычно подключается к узлу драйвера устройства Bluetooth (входящий поток) и к узлу L2CAP (исходящий поток). Windows платформа по умолчанию такой возможности не предоставляет. Однако сторонними разработчиками были выпущены
специальные драйвера, которые позволяют переводить стандартный донгл в сниффер. Традиционно показательной в этом плане является работа FTS4BT Wireless Bluetooth Protocol Analyzer, стоящего бешеные деньги. Продукт цепляет тем, что поддерживает новый Bluetooth v2.0 + EDR, на базе которого работают современные устройства и, более того, способен на лету декодировать весь трафик из эфира, аккуратно отсортировывая аудио, данные протоколов приложений и многое другое. Понятно, что для снифинга (да и вообще) наиболее актуальны USB-донглы класса 1, радиус действия которых достигает ста метров.
Трюк 4: Работаем с BT-адаптером напрямую
Долгое время Bluetooth стеки для Windows предоставляли настолько скудные возможности, что программисты просто обходили эту платформу стороной. Этим объясняется, что большинство программ для серьезных забав c «синим зубом» разрабатываются под никсовую платформу. Некоторые из хитрых приемов мы разберем именно на это платформе, а именно FreeBSD (напомню, что на диске прошлого номера мы выкладывали свежий 7.0 релиз этой ОС). Сама технология Bluetooth официально стала поддерживаться на ней только с 5-ой ветки на базе подсистемы Netgraph. Радует, что большинство USB-адаптеров совместимы с драйвером ng_ubt (его необходимо завести перед подключением устройства). Попробуем?
- Подключаем устройство: kldload ng_ubt
- Копируем сценарий подгрузки стека в удобное место: cp /usr/share/examples/netgraph/bluetooth/rc.bluetooth /usr/local/etc/rc.bluetooth
- Копируем сценарий подгрузки стека в удобное место и запускаем: sh /usr/local/etc/rc.bluetoots start ubt0
Теперь хочу познакомить тебя с утилитой hccontrol. Это одна из основных программ для работы с BT-модулем. Именно она выполняет все операции, связанные с интерфейсом HCI, и имеет следующий синтаксис: hccontrol –n . Проверим функциональность нашего устройства, просканиров эфир на наличие устройств:
hccontrol –n ubt0hci Inquiry
Как результат, утилита выведет информацию о найденных устройствах, в том числе их MAC-адреса. Надо заметить, что каждое из устройств Bluetooth, будь то хедсет или обыкновенный телефон, представляет некоторый набор сервисов. Базовый перечень включает в себя: CIP (Common ISDN Access), CTP (Cordless Telephony), DUN (dial-up networking), FAX (FAX), FTRN (Obex File Transwer), HSET (Headset), NAP (Network Access Point). Чтобы выяснить, какие сервисы предоставляет то или иное устройство, используется запрос на специальном протоколе SPD (Service Descovery Protocol). Сервер SPD работает непосредственно на машине-хосте и является исключительно информационной составляющей (повлиять на него
невозможно). Определить, какие сервисы предоставляют найденные устройства, можно с помощью соответствующей утилиты:
# spdcontrol -a browse
Трюк 5: Находим скрытые устройства
Итак, эфир мы просканировали и даже выяснили, какие сервисы доступны на активных устройствах. Но вот загвоздка! Некоторые девайсы никак не выдают своего присутствия, поскольку находятся в режиме «Undiscoverable mode» и не отвечают на широковещательные запросы. По настройкам своего телефона ты наверняка знаешь о подобной опции безопасности. Однако обнаружить такие устройства все-таки можно!
Самый известный прием их обнаружения – тупой перебор MAC-адресов, то есть последовательная посылка запросов на разные адреса из определенного диапазона. Для этого нужно использовать очень простую утилиту Redfang, которая перебирает последние шесть байт адреса устройства и таким образом обнаруживает спрятавшиеся устройства.
Другой вариант – это использовать пассивные методики: перевести свое устройство в режим ожидания, при этом назначить сети какое-нибудь привлекательное имя:
hciconfig hci0 name BT_YANDEX
hciconfig hci0 down
hciconfig hci0 up
hcidump -V | grep bdaddr
В результате отобразятся все входящие соединения, среди которых могут запросто оказаться товарищи со скрытыми идентификаторами.
Трюк 6: Перехватываем из эфира разговоры по гарнитуре
Одна из основных угроз радиотехнологий состоит в том, что данные можно перехватить. Первое, что приходит в голову, касаемо Bluetooth – прослушать разговоры людей, использующих гарнитуру. И зачастую это реально! На хакерском фестивале What the Hack в Нидерландах специалисты из группы Trifinite продемонстрировали, как при помощи ноутбука с Linux, специальной программы и направленной антенны можно подслушать, о чем говорит через Bluetooth-гарнитуру водитель проезжающего автомобиля. Группа разработала программу Car Whisperer («Автомобильный шептун»). Возможности программы относительно невелики: прослушать можно только тех, кто забыл сменить заводские пароли доступа к Bluetooth наподобие
«0000» или «1234». Но таких бедолаг, поверь, очень и очень много! «Шептун» способен вклиниться и успешно пройти «pairing» устройств, получив информацию, передаваемую с каркита или хедсета на мобилку. Хочу обратить внимание: утилита позволяет не только получить информацию, передающуюся между хедсетом и мобилой, но и инжектить туда свою. Мы решили проверить возможности этой программы, скачав Car Whisperer с сайта разработчиков.
Перед началом операции рекомендуется изменить класс своего устройства, особенно если программа будет использоваться с компьютера:
hciconfig адаптер class 0x500204
# 0x500204 – это класс «phone»
В противном случае некоторые «умные» девайсы могут заподозрить неладное. Смотрим синтаксис утилиты, который выглядит следующим образом:
./carwhisperer «что внедряем в линию» «что захватываем из линии» «адрес устройства» [канал]
Мы взяли внедряемый файл прямо из папки утилиты, а в качестве выходного указали out.raw:
./carwhisperer 0 message.raw /tmp/out.raw
00:15:0E:91:19:73
На выходе получаем файл out.raw. Прослушать его в чистом виде нельзя: необходимо преобразовать в аудио формат, для чего потребуется дополнительная утилита. Подойдут довольно многие аудио конвертеры, например SoX:
raw –r 8000 –c 1 –s –w out.raw –t wav –r
44100 –c 2 out.wav
Кроме прослушивания, можно войти в систему, просмотреть телефонную книгу и воспользоваться другими возможностями «свободных рук» с Bluetooth. Принцип такой: сначала осуществляется поиск активных устройств и проверка на предмет сервиса HS (Head Set). Далее исследуется MAC-адрес устройства и производится попытка подключения с использованием стандартного ключа. Если коннект установлен, то с устройством можно делать все, что угодно (в пределах доступного набора AT-команд).
На практике это выглядит следующим образом. Сначала осуществляется поиск всех активных гарнитур с помощью команды «sdptool search HS», которая выдает примерно такой ответ:
Inquiring .
Searching for HS on 00:0A:3A:54:71:95 .
Service Name: Headset
Service RecHandle: 0x10009
Service Class ID List:
«Headset» (0x1108)
«Generic Audio» (0x1203)
Protocol Descriptor List:
«L2CAP» (0x0100)
«RFCOMM» (0x0003)
Channel: 7
Language Base Attr List:
code_ISO639: 0x656e
encoding: 0x6a
base_offset: 0x100
Profile Descriptor List:
«Headset» (0x1108)
Version: 0x0100
Далее осуществляется попытка открыть RFCOMM соединение на SCO audio channel с помощью команды «rfcomm connect 2 00:0A:3A:54:71:95 1» и посылка нужных AT-команд. Приведу небольшую статистическую заметку о данных авторизации на некоторые модели беспроводных гарнитур:
Nokia (00:02:EE. ) – pin=»5475″
Audi UHV (00:0E:9F. ) – pin=»1234″
O’Neill (00:80:37. ) – pin=»8761″
Cellink (00:0A:94. ) – pin=»1234″
Eazix (00:0C:84. ) – pin=»1234″
Кстати говоря, тот же принцип может использоваться для несанкционированного подключения и ко всем остальным устройствам. При помощи AT-команд и протокола RFCOMM можно, к примеру, прочитать SMS-сообщение или даже отправить его с чужого телефона на платный номер, поставив владельца девайса на деньги. Будь бдителен!
Трюк 7: DDoS BT-устройств
Подход традиционен. DDoS реально провести, когда хостовый девайс («master») выполняет работу, во много раз превосходящую клиентскую. Такую ситуацию называют атакой на отказ в обслуживании (Denial Of Service). Она может подвесить телефон или привести к быстрой разрядке батарейки. Провести атаку можно несколькими способами. Начнем со стандартных средств. Самое очевидное – пинговать девайс пакетами большого размера. Сделать это можно, указав утилите l2ping в качестве параметра «-s» флаг:
# l2ping -s 10000 -b «МАС адрес»
Сама программа, как ты уже понял, является родственником ping в bluetooth среде и служит для проверки связи и наличия соединения. Другой способ, принципиально отличающийся от первого, состоит в использовании приема «fuzzing» – своеобразной техники-лотереи, потому как заранее неизвестно, что произойдет. Это новое веяние в выявлении уязвимостей в продуктах без анализа исходных кодов. Полагается техника только на интерактивное общение с объектом на понятном для него языке, но с абсолютно хаотичными аргументами и значениями-переменными. Хакерской задачей будет сделать так, чтобы видимое название телефона состояло из достаточно большого числа элементов. При обнаружении его «master’ом» в 70%
случаев происходит переполнение или отказ в обслуживании:
hciconfig hci0 name `perl -e ‘print «ash» x 3137’`
# Команда для линукса
hccontrol –n адаптер change_local_name “новое имя”)
# пример для FreeBSD
Многие телефоны по-прежнему не могут переварить файлы-бомбы. Вот простая реализация подобного приема.
- Сначала готовят «бомбу». Известный пример:
echo `perl -e ‘print «skvz» x 3137’` > file - После чего используют модифицированную утилиту для взаимодействия с OBEX – USSP PUSH (xmailserver.org/ussp-push.html)
./obextool push file 00:0A:3A:54:71:95 `perl -e ‘print «skvz» x 3137’` 3
Полную версию статьи
читай в апрельском номере Хакера!
На нашем диске ты найдешь полные версии программ, описанных в статье, а также полную подборку документации Bluetooth и уязвимостей в этой технологии.
Мы все привыкли обмениваться данными через Bluetooth или ссылками для скачивания с облачных сервисов. Однако по «голубому зубу» сложно передать какой-либо увесистый файл, а для работы с облаками обязательно нужен доступ в Интернет. Мобильные технологии не стоят на месте, поэтому в настоящее время можно поделиться с другим пользователями хоть HD-фильмом, хоть музыкой и даже контактами – быстро и без необходимости подключения к Сети. Для этого в Google Play существуют специальные программы, которые и стали предметом нашего исследования.
Для начала рассмотрим SHAREit – одно из лучших решений для обмена данными между мобильными устройствами и даже ПК. При этом в последнем случае можно транслировать видео прямо со смартфона на экран десктопа. Далее поговорим о Share Link – фирменной технологии ASUS, перекочевавшей на все совместимые Android-устройства. Выясним, как реализован этот порт, ведь на оригинальных смартфонах программа себя отлично зарекомендовала. Закончит обзор ShareCloud – универсальное приложение, которое объединяет в себе все способы обмена информацией между двумя гаджетами.
Приложение умеет работать как с мобильными устройствами (Android и iOS), так и с десктопами (Mac и Windows). Для каждой платформы предусмотрен свой клиент, который позволяет обмениваться файлами вне зависимости от типа операционной системы. Для этого используется точка доступа или классический Bluetooth: скорость передачи данных может достигать 20 МБ/с, а подключение к Интернет вам не потребуется. Таким образом, можно управлять и скачивать файлы с удаленного устройства или передавать ему бэкап системы, личные данные и мультимедиа.
Интерфейс программы сразу побуждает к действию – посередине экрана расположились две большие клавиши: «отправить» и «получить». Для этого необходимо подтвердить запрос на другом устройстве, а также иметь на нем установленный клиент SHAREit. Коннект происходит мгновенно, а связь на протяжении передачи данных не отваливается.
В сайдбаре слева можно очистить кэш трансфера, а если загрузить дополнительное фирменное ПО, то еще и стримить музыку и проверять получаемые файлы на вирусы. В главном меню также находятся настройки.
В них доступно выбрать место хранения файлов по умолчанию, зашифровать канал передачи данных, отображать скрытые папки, а также активировать одновременную отправку нескольких файлов. Правда, эта опция пока находится в бета-тестировании, поэтому могут быть сбои. Из прочих особенностей – поддержка Wi-Fi Direct для трансляции контента на смарт-телевизор (тоже бета-функция). В правом верхнем углу можно просмотреть историю подключений и полученных данных.
Чтобы подключиться, например, к ПК, можно воспользоваться паролем для точки доступа или отсканировать сгенерированный QR-код. Последний вариант самый удобный, если вы, конечно, не обладатель допотопной 2-мегапиксельной основной камеры. После происходит мгновенное подключение, и вы можете начать обмен данными. Для удобства передачи все файлы разделены на категории – фото, данные, архивация (бэкап). Также можно транслировать и управлять PPT-презентациями на компьютере с помощью смартфона – очень удобно как для учебы, так и для бизнеса. Доступны прокрутка документа и управление яркостью экрана.
Жесткий диск компьютера определяется без проблем. Можно загрузить абсолютно любой тип файла, а потом открыть и доработать документ, например, на мобильном устройстве. Это очень удобно, так как подключения к Интернет для совместного редактирования не потребуется. Таким же макаром мы можем транслировать видео и просматривать фото на самом десктопе.
Теперь о нагрузке на систему. Здесь все зависит от размера файла, использования (или нет) стриминга, а также от количества передаваемой информации и выбранного способа подключения. Озвучу среднюю нагрузку – 93 МБ при 0,15% на процессоре. Надо признать, что это божеский показатель, который даже немного удивляет: я ожидал куда более высокого уровня потребления ресурсов. Что до емкости аккумулятора, то она проседает на 20%, а скорость энергопотребления равна 22,4 мВт. В общем, особо не увлекайтесь или держите зарядное устройство (или powerbank) при себе.
Приложение совместимо чуть ли не со всеми версиями Android (iOS, Windows Phone), весит в системе 18 МБ, распространяется абсолютно бесплатно, не содержит рекламы и встроенных покупок. Рекомендую добавить сетевое подключение SHAREit в исключения брандмауэра или антивируса на PC, иначе удачи не видать. Например, мой Dr.Web сам предложил запретить или разрешить соединение, однако не все защитные решения предупреждают пользователя. Помните об этом, прежде чем ругать программу и ее автора.
Сводные характеристики SHAREit:
- Оценка в Google Play: 4.5
- Разработчик: SHAREit Technologies Co.Ltd
- Версия приложения: 3.6.78_ww
- Количество загрузок в Google Play: 100 000 000-500 000 000
- Совместимость приложения с Android: 2.2 или более поздняя
- Размер в установленном состоянии: 18 МБ
- Максимальная нагрузка на систему CPU/RAM: 0,0-0,15%/70-100 МБ
- Максимальный расход емкости аккумулятора: 20% (22,4 мВт)
- Покупки в приложении: нет
- Реклама: нет
Share Link
ASUS не в первый раз портирует свои фирменные решения на Android, делая их доступными для всех. Лаунчер от этого производителя я бы не рискнул назвать удачным, так как он более всего будет удобен приверженцам бренда, чем всем остальным, а вот к Share Link стоит присмотреться. Как и вышеописанный конкурент, программа умеет работать не только с Android-устройствами, но и с ПК, а вот совместимость с «яблочной» аппаратурой, увы, отсутствует. Доступно передавать любые типы файлов (в обе стороны) и транслировать мультимедиа. При этом передача данных осуществляется только через Wi-Fi.
Интерфейс программы выполнен в фирменном стиле ASUS, без сайдбара слева, а на главном экране всего две кнопки – «отправить» и «получить». Впрочем, сайдбар с легкостью может заменить всплывающее меню в правой верхней части экрана – жаль только, что из полезного здесь лишь настройки. Да и их минимум – выбор места хранения и отправка анонимной статистики разработчику.
Итак, попробуем отправить произвольный файл на компьютер (точно так же отправка производится и на смартфон). Как и у SHAREit, весь контент разделен на категории, но ассортимент тут пошире. Так, доступно поделиться приложениями, музыкой, фото, видео, просто файлом. Причем есть пакетное выделение и оправка, которые работают на ура, и уже не в бете. Коннект, как уже говорилось выше, происходит только через Wi-Fi, поэтому он должен быть включен на другом устройстве. В том случае, если ваш лэптоп подключен к какой-либо точке доступа, передача не состоится, поскольку канал занят. Конечно, можно создать и отдельную точку доступа, но зачем изобретать велосипед, если есть SHAREit?
Нагрузка Share Link практически аналогична конкуренту, и зависит от ранее обозначенных условий. Приложение в среднем потребляет около 100 МБ ОЗУ при 0,07% на процессоре. Аккумулятор проседает всего на 3,5%, чему способствует малая скорость энергопотребления (всего 9 мВт). Скорость передачи данных может достигать 15 МБ/с.
Приложение выборочно к версии Android, весит в системе 35 МБ, распространяется бесплатно, не содержит рекламы и встроенных покупок. Из разрешений, как и у SHAREit, ничего криминального.
Сводные характеристики Share Link:
- Оценка в Google Play: 4.7
- Разработчик: ZenUI, ASUS Computer Inc
- Версия приложения: 1.6.0.88. _160726
- Количество загрузок в Google Play: 10 000 000-50 000 000
- Совместимость приложения с Android: зависит от устройства
- Размер в установленном состоянии: 35 МБ
- Максимальная нагрузка на систему CPU/RAM: 0,0-0,07%/70-100 МБ
- Максимальный расход емкости аккумулятора: 3,5% (9 мВт)
- Покупки в приложении: нет
- Реклама: нет
ShareCloud – универсальное средство обмена информацией всеми доступными для устройства способами одним нажатием кнопки. Для этого могут использоваться Bluetooth, точка доступа без необходимости подключения к Сети, а также электронная почта, WhatsApp, Dropbox, Google Drive, Facebook и прочая, и прочая. Из особенностей – возможность создавать резервные копии всех типов данных на SD-карте или в облаке, пакетная передача файлов, быстрый поиск контента и работа с документами.
Главное окно программы сразу предусматривает выбор категории, где все данные уже рассортированы согласно расширению и содержимому. Причем никто не мешает убрать неиспользуемые категории, а также добавить дополнительные (например, doc-файлы) или включить поддержку архивов. Ниже можно просмотреть «последние добавленные». Отдельной строкой идут новые фото.
В сайдбаре слева доступно просмотреть полученные файлы, создать резервную копию приложений на SD-карте или в облаке, очистить файловый мусор и синхронизировать приложение с Facebook. Здесь же реализованы и настройки.
В последних можно выбрать папку для загрузки, настроить уведомления о возможности просмотреть файл или воспроизвести его, скрыть недавний контент с главного экрана и деактивировать умный экран блокировки – он просто перенасыщен рекламой, так что обязательно это сделайте, или ShareCloud со временем захочется удалить.
Управление программой действительно осуществляется одной кнопкой: достаточно выбрать файл или несколько файлов, нажать на «три точки» и указать способ передачи.
Отправка файлов через Bluetooth или посредством ссылки работает без проблем, а вот точка доступа порой отваливается, особенно при передаче большого объема. Впрочем, это может быть связано с тем, что у меня точек доступа несколько, хотя, с другой стороны, SHAREit работал без проблем. Напомню, что для работы с облаком потребуется аккаунт. Также есть возможность отправить ссылку по SMS, скопировать данные на карту памяти, передать через мессенджеры и даже заархивировать, например, игру.
Что касается нагрузки на систему, то ShareCloud не отходит от «концепции» своих собратьев и потребляет оперативной памяти в пределах 100 МБ, напрягая процессор до 0,2%. Емкость батареи при этом проседает на 14,5%, а скорость энергопотребления равна 55 мВт: если использовать сразу несколько методов передачи данных (как это делал я), то без розетки в течение дня не обойтись.
Приложение выборочно к версии Android, весит в системе 18 МБ и содержит «правильную рекламу» (например, Viber) – причем в самых малых количествах в самой программе и в огромных в окне блокировки экрана. В остальном все отлично – вирусов и скрытых разрешений не обнаружено.
Сводные характеристики ShareCloud:
- Оценка в Google Play: 4.4
- Разработчик: For2ww
- Версия приложения: зависит от устройства
- Количество загрузок в Google Play: 10 000 000-50 000 000
- Совместимость приложения с Android: зависит от устройства
- Размер в установленном состоянии: 18 МБ
- Максимальная нагрузка на систему CPU/RAM: 0,2%/70-100 МБ
- Максимальный расход емкости аккумулятора: 14,5% (55 мВт)
- Покупки в приложении: нет
- Реклама: да (минимум)
Все три приложения со своей основной функцией справляются отлично, потребляют одинаково мало системных ресурсов, удобны в управлении и настройке. Но! SHAREit за счет кроссплатформенности полностью развязывает вам руки и стирает грань между iOS и Android. При этом возможна трансляция контента на экран телевизора и монитор десктопа, полное резервное копирование смартфона т. д. В общем, перед нами этакий комбайн, который требует долгоиграющей батареи.
Для тех, кому все эти прибамбасы не нужны, создан Share Link. Программа без лишних заморочек создает точку доступа, посредством которой вы и обмениваетесь тем, что душа пожелает, хоть с РС, хоть со смартфоном, но только под управлением Windows или Android.
Если же вы хотите собрать все известные способы передачи в одном месте, то вам к ShareCloud. Он и с облаком работает, и с Wi-Fi, и с Bluetooth. Хотя скептики, скорее всего, скажут, что так можно делать и посредством системного решения. Только вот в системном решении не реализована строгая каталогизация вашего контента. Впрочем, последнее слово, как всегда, за вами.
Android-приложение для обмена данными с ардуино при помощи bluetooth-модуля HC-05.
Приложение будет отправлять ардуине команды включения-отключения D10. D13, а та, в свою очередь, сообщать о выполненных действиях.
Прежде чем приступать к написанию приложения, необходимо проверить настройки bluetooth-модуля и подключить его к ардуине.
Настройка модуля подробно описана здесь, проделайте всё, что написано в разделе Bluetooth до фразы «Модуль настроен«.
После настройки заливаем в ардуину код…
Ардуина получает символы от андройд-приложения, выполняет действие и возвращает ответ. Обратите внимание на скорость Serial.begin(9600), она должна совпадать с настройками модуля.
… и соединяем её с модулем по этой схеме:
Выполните сопряжение телефона с модулем.
Android
Кто не хочет обременять себя написанием приложения, может скачать готовый apk-файл, а если есть желание попрограммировать тогда.
Скачиваем, устанавливаем и запускаем Android Studio.
В процессе работы нужно будет установить sdk.
Создаём новый проект под названием BlueArdu
Next.
Оставляем как есть…
Next.
Выбираем Empty Activity
Next.
Оставляем как есть…
Finish
Открываем файл AndroidManifest.xml
После строчки package=«com.example.dima.blueardu» > добавляем разрешение на использование bluetooth:
Строку делаем так:
В результате будет так:
Кликаем по вкладке activity_main.xml и внизу выбираем вкладку Text
Удаляем всё, что там написано и вставляем вот это:
Красным цветом подсвечиваются ошибки. В данном случае среда сообщает об отсутствии картинок offlamp и onlamp
Сохраните картинки себе на компьютер. После этого скопируйте offlamp.png в буфер (правой кнопкой «копировать»), выберите (правой кнопкой) в левой колонке папку drawable и нажмите вставить.
OK.
То же самое проделайте со второй картинкой. После этого надписи станут зелёными.
Далее откройте вкладку MainActivity.java, удалите всё кроме первой строчки и вставьте этот код:
Если всё сделано правильно, то никаких ошибок не должно быть.
Разрешите на телефоне отладку по USB:
Подключите телефон к компьютеру и запустите компиляцию нажав зелёную стрелку:
Через некоторое время появится окно с выбором устройства на котором будет запущено приложение:
Отсутствие в списке телефона, означает какие-то проблемы с драйверами.
Нажмите ОК, приложение установится и откроется окно со списком сопряжённых устройств:
Выберите ваш модуль и после соединения откроется главное окно программы:
На этом всё, далее можно приступать к изучению программирования под Android и добавлять свой функционал.
Здесь можно почитать о том, как сделать метеостанцию.
Источник