Can some please explain how Windows detect near by printer as Mac OS uses Bonjour to detect them. I want my android device to be detected as printer in the nearby list of Windows. I am using NSD to register a network service with ipp protocol and it works fine in Mac OS. Now I want the same functionality for Windows as well. Please help me here.
As of Windows Vista, I believe it uses Web Services Dynamic Discovery (WS-Discovery).
The component WSDMON in Windows 7 and later uses WS-Discovery to automatically discover WSD-enabled network printers, which show in Network in Windows Explorer, and can be installed by double-clicking on them. In Windows 8 or later installation is automatic. WS-Discovery is enabled by default in networked HP printers since circa 2008.
https://en.wikipedia.org/wiki/WS-Discovery
Earlier versions of Windows used NetBIOS and SMB but I presume we're talking modern Windows here.
I currently work a technical support position - Windows is not guaranteed to find anything actually. You could have multiple printers on a network, shared in different methods. Printers may also be on separate vlans and you network can also have rules and devices which interfere with these protocols operating.
Instead of relying on the integrity of the users network (which is improbable to account for), you should find your users devices IP address and give the user instructions on how to connect a Windows device to your app.
If you would like to fight Goliath however, read this: https://technet.microsoft.com/en-us/library/cc783789%28v=ws.10%29.aspx
Related
What would be the best way in Android 11 to go about creating a network scanner that allows me to be able to detect a specific device is in the network so that I can communicate with it?
With Android 11+ changes there's been a bunch of restrictions around the MAC addresses and thus it seems to be impossible to to find the 'vendor' of a device, before I'd be able to simply access the ARP table and just take the MAC addresss based on each pinged IP address then see if it matches to a list of vendors based on MAC addresses, but this is now no longer possible.
Is there a workaround for this issue? I would prefer not to lower the target SDK for this.
I want to create a small wireless network with a Windows 8.1 laptop as the "hub," connected to up to 8 Android devices. I need to transfer files in both directions, between the laptop and the devices.
This needs to be a system that requires minimal setup since it will be distributed to the laptop owners. The developer will not be available to help. Minimal hardware and software requirements can be specified, but not actual models of laptops and devices.
It seems to me that Wi-Fi Direct is the best option to do this. I know VB.Net best, so I would like to use that for development. Does anyone have sample code that could get me started? Would I also need an app to run on the devices to set up the pairing and network?
Thanks!
I want to use usb in my application to retrieve data from my computer (present in text files) to android mobile and read it... what are the neccessities in terms of hardware and helpful links for the usb code...
Recently google launched USB accessory for android 2.3 ... it have classes UsbManager, UsbAccessory etc... i want to use that ... how can it be used.??
Usually the opposite of this is observed, where the android mobile projects itself as a usb device (client) , The USB host controller driver on the computer recognizes the device and handles future USB requests from your client. This is just the hardware layer, mind you. Since the USB protocol has become so ubiquitous, the computer actually stores multiple families of drivers both at the kernel layer and user space to be able to handle the variety of requests and their user space interpretations.
Since android mobiles are primarily linux-based devices, to achieve your end you will need to integrate these USB host-based driver families to your device's kernel / ROM. You will need to create a custom ROM (someone else asked this question here). This link provides you a list of drivers corresponding to specific hardware families.
Additionally, you will need to set up necessary programs on your computer that allows it to project itself as a USB client.
If you use linux on the computer too, this article might help you to start.
A current product I work on supports standard modem AT commands over the serial link. Commands such as ATD, ATH, ATV, ATQ ATE etc to either get information from the device or seti info on the device.
The device also supports dial-up PPP connection which is typically preceded by some AT commands when initiated from the PC - ATD for e.g.
We are looking at creating a similar device using Android and I searched whether Android or Linux support Hayes modem AT commands over the serial interface such as RS232 or USB and am unable to find such a layer or component.
On Android RIL page I see it says that, "Android provides a reference Vendor RIL, using the Hayes AT command set, that you can use as a quick start for telephony testing and a guide for commercial vendor RILs". But I believe this may be for interfacing with the Baseband or Telephony layer. Is this also typically used with the serial interface where a DTE can issue AT commands and talk to the Android device ?
I also researched Linux and it does have a basic set of AT commands but they are not modem related and serve a different purpose - e.g. atq lists the user's pending jobs, atrm deletes jobs, identified by their job number.
So I am looking to undestand, whether Android or the Linux kernel has a default AT command parser which supports the Hayes AT Command set, which can be accessed by a DTE connected to the Android device over a serial link.
I think this is a typical case for phones and other may have come across the same question or issue, but I have not found an answer searching on the Android forums.
adding more info to clarify my question as it seems from the answers, it wasnt very clear what I was asking
To clarify my question, I am not trying to issue AT commands from the Android phone. Rather I am looking to issue AT commands from a PC to an Android phone over a serial link such as RS232/USB/Bluetooth.
I am trying to understand if Android inherently supports AT commands and has an AT parser ?
For e.g. to establish a PPP link (dial-up connection) from Windows to a device that supports PPP, windows will first send some AT commands and finally the ATD (dial) command. The device responds with a CONNECT response, afterwhich it switches to online mode and a PPP link is established and IP data cab be sent between the PC and the device. Thus typically such devices (modems) by default are in AT mode. ATD is just one such command. There are several other AT commands supported by the device.
Now to develop a similar device using Android, I'd like to do that without significantly altering the Linux kernel or Andorid architecture and am looking to understand if a AT command parser which recognizes the standard set of AT commands is inhenrently supported by android.
To make my question clearer, consider the case where a PC for e.g. connects to a device (phone) using the BT DUNS (dialup networking) profile. The DUNS profile requires the phone to support i.e. parse and recognize certain AT commands such as AT&C, &D, &F, +GCAP, +GMI, +GMM, +GMR, ATA, D, E, H, L, M etc.
How does Android address this ? Does it have native support for reconizing and responding to such AT commands ?
thanks in advance!
If I understood you correctly you like to send AT-commands via a serial communication from an Android device to your hardware - and get the responses back.
Basically one would implement a serial communication either via Bluetooth - or starting with level 12 using USB communication.
I have done quite extensive serial communication in both ways it it works quite well. The main problem so far has been that while Bluetooth serial-Adapters are quite expensive - the new USB-serial communication has flaws on certain devices.
The last time I tested Samsung Galaxy Tab, the USB driver's were not functional. On some other Android device there were no USB-drivers at all installed.
But once you have a working Android device serial communication (with or without using AT-commands) works fine
For more info you might like to check http://developer.android.com/guide/topics/usb/host.html
On linux, there's the chat command, which was typically used by the pppd demon. Then there's the classical TCL expect, which allows scripting. It has been ported to many languages, eg expect for Java, Python expect. I haven't used the latter two, but it looks as if you can use them as a library and don't have to call them as external programs.
It's a curious thing that the most advanced mobile phones still use the archaic Hayes AT command set instead of a proper API..
I'm currently looking into communicating with a bluetooth enabled device from an android app that I'm developing. In order for a PC to communicate with this device, one must install drivers on the computer. My question is, if I am required to install bluetooth drivers on the PC, will I not be able to communicate with the device using an android app? Essentially I'm trying to find out how the drivers come into play with the communication of the dev
Android only supports certain Bluetooth device "profiles". What is the device you are trying to communicate with? Fortunately many Bluetooth peripherals use Serial Port Profile (SPP), so there's a decent chance you can easily talk to your device via a BluetoothSocket.
See this topic for more info on writing apps for Bluetooth
EDIT: Sorry, to more directly answer your specific question, your users will not/cannot install OS "drivers" on their Android devices for your Bluetooth peripheral. Assuming you can use BluetoothSocket to talk to your peripheral, everything else will be up to you and your app.
The idea of a driver is that it is software to enable a hardware component. Hardware drivers generally sit between the Hardware Abstraction Layer and device. In addition, hardware that works without having a formal driver installation step still has a driver which was bundled into the operating system. I am confused how your research could bring your understanding this direction: will I not be able to communicate with the device using an android app. If you mean, "will your end users require a driver", the short answer is yes and "will my development computer require a driver to write the computer side of my application", again yes.