USB debugging - Issue with installing drivers for Epson Moverio - android

New to Android development, I've made a small app using Eclipse that works perfectly on a virtual Android device. Now, I want to run it on the real device: Moverio, a head-mounted display made by Epson, but my computer just does not recognize it as an Android device.
Being on Windows 7, I understood I need a specific USB driver. Epson sent me instructions to install the driver, but it still doesn't work. How can I do it?
Here are the steps I followed:
Add following two lines in [Google.NTx86] and [Google.NTamd64] sections in
\extras\google\usb_driver\android_winusb.inf:
%SingleAdbInterface% = USB_Install, USB\VID_04B8&PID_0C04
%CompositeAdbInterface% = USB_Install, USB\VID_04B8&PID_0C04&MI_01
Add vendor ID in [username].android\adb_usb.ini]
Enable USB debugging mode on the device
Install USB driver following instructions given here http://developer.android.com/tools/extras/oem-usb.html#InstallingDriver
I ran into a problem in the fourth step: in my device management panel, Moverio is in the "Disk drives" category. When I right click on it to install or update drivers nevertheless, inputting the <sdk>\extras\google\usb_driver\ folder, it says the driver is up to date.
When I try to run the app using Eclipse, it asks me to install a virtual device, because it can't find any real device connected.

I managed to find a blog post walking through the process needed to enable ADB access to the device. The original is in Japanese and the Google translation left something to be desired.
I'm providing my recreation of the process below; this is partially a translation and partially an expansion and combination of the original with the official documentation which failed to cover the problem encountered with the Moverio.
With a few modifications noted at the end, I suspect this should work for installing debug support on other devices that only identify as external data drives by default as well.
The first thing you need to do is to edit the .inf file for the Google USB driver.
The file is located at \android-sdk\extras\google\usb_driver\android_winusb.inf.
By default, the android-sdk folder is located under C:\User\YourUserName\AppData\Local\Android\.
You need to add the following lines to the end of the file:
[Google.NTamd64]
; BT-100
%SingleAdbInterface% = USB_Install, USB\VID_04B8&PID_0C04
%CompositeAdbInterface% = USB_Install, USB\VID_04B8&PID_0C04&MI_01
Next connect the device with developer mode disabled. Windows will identify it as a USB mass storage device (MSC).
You need to go into Device Manager and uninstall it. If you have multiple USB-MSDs listed under USB Serial Bus Controllers, you can identify which one is the Moverio by disconnecting it, right clicking on each one that is still present, selecting properties and noting the location value on the general tab. Then reconnect the Moverio and look for the new entry it adds.
After you've uninstalled the Moverio's USB Mass Storage Device entry, disconnect it and enable Developer mode on the device.
Then reconnect it. Device Manager will update to show a BT1 entry under Other Devices
Right click on the BT1 entry, select Update Driver Software, mrowse My Computer for driver software. Provide the path to the USB driver folder from step one. Click Next.
At this point I get a warning about not being able to verify the publisher of the driver. I believe this is related to my having edited the .inf file. Click install this driver software anyway.
Windows will report that the driver is successfully installed. Close the update dialog. You should now see an Android Composite ADB Interface entry in device manager. On my computer it's appearing under ASUS Android Devices; which I assume is a legacy of the Transformerpad I've connected in the past; in the blog I'm using as a source it appeared under Android Phone.
ADB still needs to be informed that the device is available however. To do this, you need to edit the \.Android\adb_usb.ini file. Default location of C:\User\YourUserName\ by appending the vendor ID as a new line to the end. This is an autogenerated file; but running the update process in the comment will remove the entry we need. If you unexpectedly lose the ability to debug, this would probably be a good spot to recheck.
# ANDROID 3RD PARTY USB VENDOR ID LIST - DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x04B8
The only thing left is to stop and restart ADB. To do this, open a command prompt at \android-sdk\platform-tools. Issue the command adb kill-server followed by the command adb devices.
C:\Users\Neelyd\AppData\Local\Android\android-sdk\platform-tools>adb kill-server
C:\Users\Neelyd\AppData\Local\Android\android-sdk\platform-tools>adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
WS000 device
When ADB restarts the device should be listed, and appear in DDMS in Eclipse.
To use this procedure to install the generic Android USB driver on a different device I think all you should need to do is to right click on the device's USB Mass Storage Device entry in device manager (step 3); select details, select the Hardware Ids property, note the values displayed, and use them in place of the Moverio's in the android_winusb.inf file (step 1), and the vendor ID in adb_usb.ini (step 10).
Possible simpler option
After figuring this out, I finally got a reply from Epson support. They said it should be possible to install their driver to the USB-MSD identified in step 2 directly. If that works it would replace steps 3-6. I haven't tested it though, so I'm only leaving this note as a postscript.

Installing drivers for Windows might be much more difficult than it seems. From my experience, you have much better chance for successful development for Android on any Linux platform, be it installed next to your Windows installation on your PC or run in a virtual box. Linux does recognise almost any Android device and allows access without any driver installation.

Related

Android device is not responding

I used Unity 2019.
When I connect my android devices (3 devices, tablet included) to Unity and try to run and build any apk, devices are recongized in Unity but the compilation process fails. lt's, writtren :Android device 52000... is not responding
I had this problem with my new phone, which was occurring even after enabling USB debugging and authorizing the PC through the phone. I ended up finding the answer in here Unity's documentation:
Run the adb devices command from the platform-tools directory of your
Android SDK installation and check the output.
If the output list is empty and you are using Windows, you may need to
install the driver for ADB devices. For more details, refer to the
Android SDK/NDK Setup documentation.
If the list contains entries with the unauthorized label, you may need
to authorize your computer on your device and give it permission to
debug it. Check the device’s screen for the corresponding dialog.
If the list contains your device with the device label, build your
Project in Unity again.
I resolve the problem.
In USB connection mode, on my phone, there are 4 options:
Transfer files
transfer images
Connect a MIDI device
Charge this phone.
I ONLY changed the connection mode to TRANSFER IMAGES.
After that, I received a prompt asking me the validate this connection mode. I did it and it works fine.
I resolved this issue, by changing the USB connection mode to Image Transfer(PTP) in my MI device
the problem is very clear. The compilation is successful, which means there is nothing wrong with your code. And the error message in the dialog box is clearly saying that
Make sure USB debugging has been enabled
So, to solve this simply follow the steps below -
Navigate to Settings > About Phone > Scroll to bottom > Tap Build number several times
Go back and now access the Developer options menu, check 'USB debugging' and click 'OK' on the prompt
You can also checkout this link
On android device, when prompted for "Allow USB debugging?", selecting "Always allow from this computer" checkbox solved the problem for me.
In order for my phone to show up the "Allow USB debugging?" dialog, I revoked the USB debugging authorisations from my android device and then ran "adb devices".
Also once I did this, unity was showing my device name instead of just device id.
Here's what worked for me.
Windows key type cmd
cd C:\Users\[name]\AppData\Local\Android\Sdk\platform-tools
adb kill-server
adb start-server

Eclipse IDE cannot connect to Mobile Device

I known there is lots of answers about this question, but still my mobile device not connected to eclipse IDE.
The following is what I already did:
1. restart adb or type command in cmd "adb kill-server/adb restart-server", eclipse find nothing in the devices.
2. execute netstat -aon|findstr "5037", finding there is only one process "adb" occupy the port
3. check the phone driver in device management, finding the phone is install correctly.
4. execute "adb devices":
List of devices attach
1f06cbba device
I thought may it's my phone's problem, so i remove it, and create a virtual device avd, the eclipse still don't work.
My Operating System is Windows 7 and Eclipse IDE Kepler.
can any body help me to successful run my first android helloworld?
Thanks a lot!!
additional explanation
debug mode is in phone is ON
adb is in the variable %path%(maybe some should answered)
try the latest adt-bunble in adroid website, it still don't work.
Try turning "developer options" on in your device. (Option you haven't tried).
To access these settings, open the Developer options in the system Settings. On Android 4.2 and higher, the Developer options screen is hidden by default. To make it available, go to Settings > About phone and tap Build number seven times. Return to the previous screen to find Developer options.
Have you added adb in your class path variables? If not , you should append the class path with following paths :
path-to-sdk/android-sdk/platform-tools
path-to-sdk/android-sdk/tools
Try re-installing ADT Plugin. Worked for me last time.
Install your current mobile Adb USB driver and update Google USB driver
Check the MTP/PTP mode for your device:
http://lh3.ggpht.com/-8UMNs7Vg_dY/UVC6_6PnbDI/AAAAAAAAAIg/NjKOvAp9cDs/02-select-camera-ptp-mode_thumb%25255B1%25255D.png%3Fimgmax%3D800
In some devices you can find this under Settings->Storage->Menu Options(three vertical bullet squares).
When you say->the phone debug mode is open, i assume your developer options usb debugging is already enabled

Hisense Sero 7 - USB Debugging Enabled But Not Working

I recently received a Hisense Sero 7 Pro Edition (running android 4.2) for use with development. I am currently on my Linux box trying to get it setup to be used over here since I seem to have better luck with the NDK on this computer.
Aside the point, I have the vendor ID registered in adb_usb.ini and its not seeming to want to play nice with my computer. When I plug the device in it says USB debugging is enabled as well as its connected as a media device. I have heard a few places that connecting as a media device causes some issues with USB debugging. Maybe that is the issue, if so how do I turn that off?
Kinda at a loss here. How do I go about getting this working?
Thanks in advance
I have the same Hisense Sero 7 tablet. The id is 109b, which can be found here in the list of USB Vendor IDs. This must be done in addition to the answer explained by Sumit Jain.
In addition to editing 51-android.rules, you will also need to add third party vendor Id to adb_usb.ini
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
0x109b
then in the terminal:
adb kill-server
adb devices
> List of devices attached
> 015d8bed094ffe06 device
P.S: this is the command I used
gedit ~/.android/adb_usb.ini
Well I think I have a method which can help u. Just follow the steps...
Type lsusb in your terminal after plugging in your device to your system. You will see some codes. Now remove the device and again run command. Now you will notice that one of the code is missing.
Note down the missing code because that is the code of your device manufacturer.
This is the code in my case (0bb4)
Bus 002 Device 014: ID 0bb4:0ce6 High Tech Computer Corp.
3.Now go to this path /etc/udev/rules.d
4.You will notice a file named 51-android.rules.
5.Open it and copy and paste the last line but change. The last line looks like the one i pasted above. Now in the copied line replace the code with your device code (0bb4 in my case).
Now type adb kill-server
Now type adb devices and you can see your device listed.
Hope this will help you and ya be careful with permissions your require anywhere.
Goto setting/about/build tap build 8 times. Bazinga developer options open up when you back out

Install ADB interface driver for android

I tried to install through Device Manager. After I connected the phone to my laptop, i got link as 'Celkon incorporated GSM handset' in 'Other devices' portion of Device manager. I right clicked and clicked 'uddate driver' and 'install from specified location' and located the 'inf' file (usb2ser_2kXP.inf), but the messsage is ' cannot install this hardware, and 'the wizard cannot find the necessary software'..
So, how i have to edit the 'inf' file ?
Right click on My Computer-->then go to manage--> then right click on
it and select update device driver--> select your device in other
device in Device manager-->
Choose to manually search the device instead of automatically doing
it.
Choose to show all the devices.
To manually locate the device driver for ADB Interface, click on Have
Disk.
Click on 'Browse'
go to sdk-->extra-->google-->usb driver-->then click on
android_winusb.inf-->click open
Check your SDK Manager whether your 'Google USB driver' is installed or not.
Make sure that your environment variables are set up:
ANDROID_HOME : %LOCALAPPDATA%\Android\Sdk
PATH: ;%LOCALAPPDATA%\Android\Sdk\platform-tools;%LOCALAPPDATA%\Android\Sdk\tools
Android ADB Interface will be recognized.
Check to see that the error is removed and your ADB device interface should be working now.
http://adbdriver.com/upload/adbdriver.zip
Download adb driver installer and open it
Connect your phone to PC(make sure USB Debugging is enabled)
Phone will be listed with driver status whether it is installed or not
Just click on install, allow to install the driver if any popup asks and wait for a while
After installing the driver, reconnect you phone to PC
Note: This driver may work in any of the Android devices.
I have the same issue before but I solved it easily by just following these steps:
*connect your android phone in a debugging mode
(to enable debugging mode, go to settings, scroll down About Phone, scroll down tap seven times Build Number and it will automatically enable developer option, turn on developer options and check USB debugging)
download Universal ADB Driver Installer
*choose Adb Driver Installer (Universal)
*install it
*it will automatically detect your android device(any kind of brand)
*chose the device and install
STEP A:
Get the MTK6573 ADB driver from
h*t*t*p://chinamobiles.org/downloads/zap/MT6573ADBdrivers.zip
And extract it to a folder. The MTK6573 ADB interface driver works fine on MTK6575 based devices.
STEP B:
Get the VENDOR and DEVICE Ids of your Celkon A97 phone.
To get it,
Connect the phone to your PC. Open Device Manager. Look for Celkon incorporated GSM handset under Other Devices
Open 'Celkon incorporated GSM handset' -->Properties-->Details tab.
Under property dropdown menu, Select Hardware IDs
and note the 4 digit VID_XXXX and PID_YYYY values. These are the phones Hardware iDs.
STEP C:
Open the file android_winusb.inf using your favourite text editor.
Add three lines after this line.
[Manufacturer]
%ProviderName% = Google, NTx86, NTamd64
The three lines are
; CELKON A97
%CompositeAdbInterface% = USB_Install, USB\VID_XXXX&PID_YYYY&MI_01
;
Replace XXXX, YYYY with Vendor and Device IDs of your phone.
Save the file.
STEP D:
Once you update these values, update the driver from the device manager by pointing to the folder of android_winusb.inf.
Now you should see a ADB interface device in the device manager.

Android - How to load HelloWorld app onto my Phone?

I made an Android Hello world app and I'm trying to load it onto my HTC Incredible. I believe it has 2.2 (how do I confirm that?)
Anyway, Eclipse gives me this message and then brings up the window in the screenshot below.
Automatic Target Mode: Unable to
detect device compatibility. Please
select a target device.
I'm on Ubuntu 64bit if that matters. I did turn on USB debugging on the phone. I told the phone to connect as a disk drive.
Any ideas how to get my app onto the phone?
Update: Do I need to perform these steps since I'm on Ubuntu? I doesn't mention what to do for Ubuntu 8.10 though.
Ok, it turns out I did have to follow all the instructions from this page. (The sudo stuff mentioned in other answers above didn't help.)
Here are the exact commands I ran for Ubuntu 8.10
You need to run the adb server in superuser mode (i.e. sudo adb start-server).
Try what EboMike said, run sudu adb start-server.
To answer your question "how do I confirm my phone is V2.2?" Press your phone's menu key, then settings, about phone, software information. The Android version is the number you're looking for. This shouldn't be important though for your hello world example.
Also, it's not important that you have the phone connect as a disk drive; this causes the SD card to be dismounted. It will actually cause problems if you run or debug an application that tries to access the SD card. You can just select charge only and use ADB/Eclipse's DDMS perspective to move files to and from the phone.
Here's an update answer in case anyone finds this thread from Google.
http://dimitar.me/how-to-connect-your-android-phone-to-ubuntu-to-do-developmenttestinginstallations-or-tethering/
The easiest way to this: Go to www.dropbox.com and sign up for a free account. Copy your .apk file from your project's /bin directory to your Dropbox. Download and install the free Dropbox app from the Android Market. Navigate to your .apk file on the Dropbox app and click it to download and install on your phone.
These are the steps I took on Arch Linux to resolve the same problem:
As mentioned in some of the other replies you will need a udev rule for the device. In this example I am using an HTC Desire.
(for HTC you'll need to use "0bb4")
Get the correct Vendor and Product IDs
run lsusb with the handset plugged in and you should see something like Bus 001 Device 004: ID 0bb4:0c87 High Tech Computer Corp. Desire (debug)
'0bb4' is the Vender ID: HTC
'0c87' is the Product ID
Make a udev rule using the values you've just retrieved
Now make a udev rule as root using:
$ sudo vim /etc/udev/rules.d/51-android.rules
Add the following (this is for HTC Desire - edit accordingly):
## Rule for an HTC Desire Android Phone
SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c87", MODE="0666", GROUP="users", NAME="HTC Desire"
GROUP defines which Unix group owns the device node.
At this point I rebooted and found that my handset was detected. Supposedly you can reload udev rules using the following but if this doesn't work try rebooting.
$ sudo udevadm control --reload-rules
in eclipse: go to Run menu -> Run configuration. Right click on android application on the right side and click new. Fill the corresponding details like project name under the android tab. Then under the target tab. Select launch on all compatible devices and then select active devices from the drop down list. Save the configuration and run it by either clicking run on the run button on the bottom right side of the window or close the window and run again
Cheers !

Categories

Resources