I was looking for Android Dual-SIM API for Android, but more or less I found nothing. As far as I understand, there is no public API from Google/Android, only specific implementation of each manufacturer. Therefore is very hard to implement application supporting Dual-SIM (or more SIM) devices.
If I am not wrong about it in this time (17.02.2015), is there anything we (developers) can do to request/force Google to implement this?
I would like to "guide" all developers to same place (if there is one) to increase our power.
Thank you for any feedback.
[UPDATE: 10.03.2015]
Android support DUAL-SIM/MULTIPLE SIM cards in API since ANDROID 5.1.
Whether you want to share your phone with a family member or better manage your mobile costs, Android Lollipop 5.1 now lets you use more than one SIM card on a device with multiple SIM slots.
Read more here and here.
AFAIK, Google has never openly discussed their rationale for not supporting multi-SIM devices out-of-the-box, even though manufacturers are quite clearly gung-ho about it. None of Google's Nexus devices has had this feature, so obviously they do not advocate multi-SIM devices, whatever their reason.
I suspect it has something to do with security, and also with Google's perception of a smartphone being an abstraction of an individual, and all data being connected with a single phone SIM account, and thus representing that individual. Or maybe I'm crazy.
The official Google review branch for this feature is here. And the only relevant post on SO for working around this is here.
UPDATE:
Both Multiple SIM Card Support and True multi-user support are available.
Related
So I'd like to use Wifi-Aware for a program outside the Android universe (let's assume Linux/OSX/Windows) and cannot find any info on this at all.
At first I thought it would suffice to use a Wifi-Aware certified product
running one of these OSes and then implement the Wifi-Specs, but when I tried to download the specifications, I was asked to login first (but with no option of creating an account).
Do I understand correctly that you have to be a paying member of the Wifi-Alliance to even get the specifications?
Furthermore, is my assumption that, with the specification, I would be able to implement a Wifi-Aware/NAN application on say, Windows/Linux correct? Or is the specification something that is meant for OS developers and an application would rely on support from OS (like Android provides) to support this? (This would then mean that it is in fact impossible to implement Wifi-Aware applications on Windows/Linux, since the OSes do not seem to support it)
Edit: There is a question on this, but it seems to have been asked from a user, not a programmer perspective, and is not going into much detail, so I do not consider this one to be a duplicate.
You need support for WiFi Aware at the hardware and the OS levels.
The wifi.org website mentions the following "certified Wi-Fi Aware devices":
Broadcom BCM4361 11ac STA Reference Design
Intel® Dual Band Wireless-AC 8265
Marvell 802.11ac Wave2 Wi-Fi Test Bed Evaluation Kit
Qualcomm® mobile Wi-Fi AC2 chipset
I guess that Intel card might be your best bet? Although the iwlwifi driver page mentions that:
While we advertise support for Wi-Fi Location* and Wi-Fi Aware* on
8260, we can't commmit on accurate results for those features. NAN
isn't considered stable yet and may or may not work depending on the
firmware version.
As for OS support, as far as I know that is currently limited to Android.
I'm working on an app using bluetooth LE technology. I am trying to build a bi-directional communication between two devices, and first thought Bluetooth LE was the perfect choice at first.
But then the more I learn about it the more disappointed I became, because it looks like not enough devices support the peripheral feature, even though this has been introduced a long time ago.
I know the central role is possible in most cases, but for my app to work, I need to make sure there are enough devices out there that support (and will support) the peripheral role as well.
But I'm really not sure what the situation is because I couldn't find any reputable source which has a list of devices that support the peripheral feature. And due to the fragmented nature of the ecosystem I have no idea if this is something hardware vendors are planning on dropping or if the coverage will increase.
Can anyone share some insights?
Edit: I have already read another answer suggested as a duplicate (Chipsets/Devices supporting Android 5 BLE peripheral mode) as well as almost everything I could find on Stackoverflow about this topic. But I have yet to come across a definitive list of what devices support this feature, and what the future of this feature is. It's extremely frustrating not knowing whether I should even rely on this API or not because while they say it depends on the hardware vendor, NO hardware vendors include this information in their device spec, which is why I asked this question.
A good rule of thumb seems to be that devices which have Bluetooth chips with version 4.1 or above have proper support for the peripheral role.
Otherwise all Bluetooth devices and their features are listed on https://www.bluetooth.org/tpg/listings.cfm. Note that you might have to search for the model number and not brand name, like LG-H790 instead of Nexus 5X. Then press >> DISPLAY ICS DETAILS >>.
But maybe you can use Bluetooth classic? Android - communicating between two devices
Does android natively support the dual sim feature?
Or is android extended by manufacturers to do so?
In particular, I'd like to make a sim switching app just like the ones in Samsung phones.
Also can anyone tell me in which system apk are the status bar and notifications located?
I'm trying to reverse engineer the Samsung sim switching feature.
Thanks.
No, dual SIM is not supported in Android out of the box. It is a custom modification by manufacturers, and there is no public API to control it.
The status bar and notifications are location in SystemUI.apk, but I doubt you'll be able to get much out of them. Any APIs used in their are unlikely to be available to third parties.
I am trying to write an android application that uses several of the android apis(like policy manager, package manager, wifi apis etc).
The concern i have is, android being open, manufacturers/carriers are free to take any specific version of android as their start point and customize the same and ship it with the device.
Note:Please excuse me if this post is in anyway a repeat of earlier posts on the same/similar topic. In such a case, appreciate anyone sharing the earlier post.
Few things that bother me are:
Does android enforce/require manufacturers/carriers to retain the default apis and only over-ride/customize the look-and-feel?
even if manufacturers change the implementation/behavior of the basic apis that comes from android, do they adhere to the interfaces so that my code doesnt break?
how do i ensure/test that my code works on all of the android devices since there is a possibility that one or more customizations could break my whole application?
I know these are some naive questions for many of you who may have been on android for a while, but any pointers in this regard would be of immense help.
Any other information in general w.r.t cross version, cross device incompatibilities and strategies to deal with them would be very helpful.
Thanks a lot in advance.
Regards,
Deepak
Your concerns (and many other developers) are addressed by: http://source.android.com/compatibility/index.html
But this still does not guarantee that manufacturer will not change API and break your application.
The common approach is to initially target subset of devices that make up large percentage of market and then implement workaround for other devices (if necessary). Sample info about device market penetration can be found at:
http://opensignalmaps.com/reports/fragmentation.php?
Kind regards,
Bo
First off, I don't believe you should need to worry about this. Only after you have thousands of users will you end up needing to face the more complex issues caused by the great number of manufacturers offering Android devices. This should not discourage you from developing for Android.
Does android enforce/require manufacturers/carriers to retain the default apis and only over-ride/customize the look-and-feel?
No. But it would certainly work against them if they remove important APIs from the system. The core exists as a whole, though there really isn't anything preventing them from removing or disabling chunks as they wish. For example, AT&T had disabled the ability to sideload apps on Android devices some time ago (but I don't think they still do that). An example of a device with reduced functionality: Amazon Kindle Fire. It doesn't at all look like Android in the majority of its interfaces (except within third-party apps) and it doesn't offer the complete API set. Even with those dramatic changes, Android app developers still have great success building and selling apps that run well on the Kindle Fire.
Even if manufacturers change the implementation/behavior of the basic apis that comes from android, do they adhere to the interfaces so that my code doesnt break?
That's the idea, but there isn't anything in place to forbid them from breaking things. Nor is there anything that will keep them from introducing bugs accidentally.
How do I ensure/test that my code works on all of the android devices since there is a possibility that one or more customizations could break my whole application?
I know that some manufacturers will offer an emulator for their devices/configurations to help test against their systems. For example, Motorola offers MOTODEV Studio for this purpose.
I just came to know to restrict my app only to be downloaded on Phones but not on Tablets I have to enforce the telephony feature into my Manifest file by adding
<uses-feature android:required="true" android:name="android.hardware.telephony"></uses-feature>
Now my questions does the tablets support telephony, Can I make regular calls from tablets. I just came across some posts which says it is possible. If yes the how to restrict the app to get downloaded only on phones not tablets. I am bit confused. Could anybody have the genuine answer for this.
I also read the following post on Android FAQs
What kinds of devices can be Android
compatible?
The Android software can
be ported to a lot of different kinds
of devices, including some on which
third-party apps won't run properly.
The Android Compatibility Definition
Document (CDD) spells out the specific
device configurations that will be
considered compatible.
For example, though the Android source
code could be ported to run on a phone
that doesn't have a camera, the CDD
requires that in order to be
compatible, all phones must have a
camera. This allows developers to rely
on a consistent set of capabilities
when writing their apps.
The CDD will evolve over time to
reflect market realities. For
instance, the 1.6 CDD only allows cell
phones, but the 2.1 CDD allows devices
to omit telephony hardware, allowing
for non-phone devices such as
tablet-style music players to be
compatible. As we make these changes,
we will also augment Android Market to
allow developers to retain control
over where their apps are available.
To continue the telephony example, an
app that manages SMS text messages
would not be useful on a media player,
so Android Market allows the developer
to restrict that app exclusively to
phone devices.
Thanks
Not all tablets support telephony, but some do.
Actually telephony is an "umbrella feature", where the tablet may support some sub-features.
There is a an explanation on this blog post and links for further information.
if you have a PC windows tablet, you can use USB telephony device or so called usb voice modem to create a full featured telephony solutions. Since it uses usb to connect to your tablet and resolve the hardware layer issues.