Wi-Fi Direct Support on Android Froyo - android

I am a beginner to the Android Platform
I am using the USB Enabled Wi-Fi CHip from Marvell; Marvell is providing support in the HAL Layer to support the Wi-Fi Direct.
Is there any other dependency on the Andoird Source that has to be taken care to support the Wi-FI Direct(I see the Wi-Fi Direct feature to be supported on android 4.0)
Can we port the frameworks and Application from Android ICS on to the Android Froyo.
Please let me know your views and suggestion and concern which i have to for see before Porting the Wi-Fi Direct on the Froyo.
Thanks

Wifi direct is implemented in driver/chip and wpa_supplicant. So if Marvell provides this for you your only addition to froyo should be modifications to gui/framework.

Related

Wi-Fi Direct and Android Support

I am wanting to use Wi-Fi Direct in a solution but am unsure which platforms will support it.
Is Wi-Fi Direct dependent on phone type or Android version?
I need to know if I can develop an App with Wi-Fi direct features on a Xiaomi running MIUI version of Android 4.2.2
Android Developer site Wifi-Direct tutorial
Wifi Direct support was added in API level 14, i.e. ICS, so the phone you specify is likely supporting the feature.

Atheros Bluetooth 4.0 Support API for Android

I am involved in a Android Project that connects the sensor using Bluetooth 4.0. AFAIK android didn't support Bluetooth 4.0. I tried with my laptop bluetooth 4.0. I tried with Broadcom using this. Later i came to know my Laptop Bluetooth 4.0 is Atheros Bluetooth 4.0 and later i searched for Atheros Bluetooth 4.0 API using android mobiles and tablets. I saw Qualcomm having Bluetooth 4.0 tablet. I want to know, is Atheros giving API for Bluetooth 4.0 for Android SDK.
Finally, long way of search, i found that up to today(23/12/12), Atheros not giving Bluetooth API for developers. But they are providing other API's for Audio, Camera, Device Info and Sensor(mobile shake). So, can't try on laptop also. Dgel comment and link helped me a lot and made me, come to the conclusion.
Android Bluetooth (and other) API's are not specific to the hardware (or software stack).
They are generic and fairly high-level, and Yes they include Bluetooth 4.0.
The actually support for BT 4 depends on the device. Recent Nexus devices support BT4 (both in hardware and in software) as long as they have the Android 4.2 update.
If you root your device you can get to the 'raw' vendor API's, but I don't know what that looks like for BT4, or wheteher any of that is published. In most cases that is Broadcom based, not Atheros.
EDIT:
I just saw this:
http://code.google.com/p/broadcom-ble/
I'm not familiar with this, but I suspect that it was just a stop gap measure before BT4 was added to the official Android API in 4.1.

how to define bluetooth version a system support

Bluetooth 4.0 is same as Bluetooth 4.0 LE? , i.e. iPhone4s supports bluetooth 4.0,
does that mean iPhone4s supports bluetooth 4.0 LE ?
I know that bluetooth 3.0 != bluetooth 3.0 HS
My android phone project, msm7225A platform, bluetooth chip is WCN2243.
which version can be defined?
In short, from hardware and software aspects, how to confirm Bluetooth version
(when using bluez stack, and take android phone for an example)
it is really a problem that confusing me for a long time.
appreciate anyone give some help.
Not sure if I got your questions correctly, but maybe this helps:
Bluetooth 4.0 specifies two modes of operation: "classic" Bluetooth and "Bluetooth Low Energy (LE)". iPhone 4S's Bluetooth is dual mode, i.e. it supports both classic & LE. IOS, though, only supports programming the latter (LE) directly via the public CentralManager API. There is no way to directly access the "classic" Bluetooth stack in IOS.
The standard Android SDKs only support classic Bluetooth. If you want to use LE, this answer suggests to use a manufacturer API.
BlueZ supports LE's GATT server at least. I haven't worked with that though, so I can't tell how complete LE support is. If you're about to use BlueZ directly on Android phones, mind that this will only work if the user has root access.
To answer more generally, LE could/should also have been published without calling it "Bluetooth" at all. So to determine if the hardware/software supports classic and/or LE, you'll have to look at the specs for each platform you're targeting.

WiFi Direct for Android Version 2.3+

I have noticed on the official Android blog that WiFi Direct APIs are supported on google phone which are having versions 4.0 or later. Also I have seen the code to access WiFi Direct API.
But I have doubt that on some blogs people have written that some 2.3 version android devices also support WiFi Direct. So same code we are writing for 4.0 or later , will work on the 2.3 version android devices which support WiFi Direct?. I have failed to find the code which is compatible to android version 2.3
Again I have noticed ,Alternate solution for this is "AllJoyn" (https://www.alljoyn.org/) , but don't know that is it the right way to use WiFi Direct ?
Can anybody please help me ?
The fact that a device supports WiFi Direct (eg: version 2.3) doesn't necessarily mean that you have access to the WiFi Direct API (available from 4.0)
On the version 2.3 examples, consider that the feature is there but the app developer can't
directly interact with it.
I think that on the blogs you are talking about, the guys have just enabled the WiFi Direct on 2.3 but don't do anything by code.
If you want to do something by code with WiFi Direct, you need a device WD enabled and which runs on 4.0 at least so you have access to the API.
AllJoyn won't solve your problem. AllJoyn provides a layer on top of the transport APIs so the developer doesn't have to care if the data will be transferred via Bluetooth, WIFi legacy or WiFi Direct.

Android USB host-to-serial connection?

Apparently with Android 2.3.4 and 3.1 one can now access USB accessories.
I have a Ardupilot Mega (based on Arduino) board with a USB cable connected to my laptop, and I can connect to it using a simple serial communications program over COM7 and 115,200 baud. This allows me into the command-line interface, and I can issue commands and get logs.
Is it possible to write an Android app that will communicate over USB to my Ardupilot Mega board?
I've seen many similar threads, but most of them were pre-USB host.
usb-serial-for-android is my open source library written for exactly this need. It supports FTDI and CDC-ACM usb serial devices using Android's USB host support; no root or ADK necessary. It can talk most Arduinos.
The project is still in its early days, but the basic support has worked well enough for several projects. There is also a discussion list where you can get help.
Unfortunately the library from mik3y's answer (see here: mik3y/usb-serial-for-android) seems to be long dead. It has many problems and waiting pull requests. Also the LGPL licence prevents anybody to fork it and maintain it.
But don't lose your hope, there's a working replacement and it's under the MIT licence. felHR85/UsbSerial.
EDIT: I found a maintained fork of mik3y's library. But the licence or readme is not updated, so I suppose the owner doesn't have a connection to mik3y and simply took it and improved it. I hope he won't get into any trouble because of the licence, because we need this library. See kai-morich/usb-serial-for-android
EDIT2: It seems that all of these libraries are maintained again, mik3y joined forces with kai-morich and they're working together now.
EDIT3: mik3y/usb-serial-for-android is under MIT license now. And still maintained in 2022.
Maybe. Check out the Android Open Accessories announcement on the Android Developers Blog. The Arduino Mega ADK is compatible. Not sure about the Ardupilot Mega.
From their page:
The Android 3.1 platform (also backported to Android 2.3.4) introduces
Android Open Accessory support, which allows external USB hardware (an
Android USB accessory) to interact with an Android-powered device in a
special "accessory" mode. When an Android-powered powered device is in
accessory mode, the connected accessory acts as the USB host (powers
the bus and enumerates devices) and the Android-powered device acts as
the USB device. Android USB accessories are specifically designed to
attach to Android-powered devices and adhere to a simple protocol
(Android accessory protocol) that allows them to detect
Android-powered devices that support accessory mode. Accessories must
also provide 500mA at 5V for charging power. Many previously released
Android-powered devices are only capable of acting as a USB device and
cannot initiate connections with external USB devices. Android Open
Accessory support overcomes this limitation and allows you to build
accessories that can interact with an assortment of Android-powered
devices by allowing the accessory to initiate the connection.
Note: Accessory mode is ultimately dependent on the device's hardware
and not all devices will support accessory mode. Devices that support
accessory mode can be filtered using a "uses-feature" element in your
corresponding application's Android manifest. For more information,
see the USB Accessory Developer Guide.
The following list of distributers are currently producing Android
Open Accessory compatible development boards:
The Arduino Store provides the Arduino Mega ADK (in EU nations or
non-EU nations) that is based on the ATmega2560 and supports the ADK
firmware. DIY Drones provides an Arduino-compatible board geared
towards RC (radio controlled) and UAV (unmanned aerial vehicle)
enthusiasts. Microchip provides a PIC based USB microcontroller board.
Modern Device provides an Arduino-compatible board that supports the
ADK firmware. RT Corp provides an Arduino-compatible board based on
the Android ADK board design. Seeed Studio provides an
Arduino-compatible board that supports the ADK firmware. SparkFun's
IOIO board now has beta support for the ADK firmware.
You can check out the library described in Slick USB 2 Serial Library.
It enables common USB-to-serial adapters to work with Android devices that have USB host mode without needing to root.
http://slickdevlabs.com/
I am currently using the library in my own app, however I think you can get away with just the app that slick has on the market. There are two free apps and one is the "pro" version of one of the free ones; search slick usb in Google Play.
It does use HOST mode and you can change the baud rate to whatever you need.

Categories

Resources