My android app has nothing to do with phone calls, but I'm seeing that when I install a debug build on my test device it requires "Phone Calls: read phone state and identity" permissions. (I make no mention of this in AndroidManifest.xml). I'd like to have the minimum possible permissions, and wondered if anyone knew how to get rid of this? I commented out the part where I was logging some stuff from Build.MODEL, Build.VERSION.*, etc. I also commented out the part where I was detecting the landscape/portrait orientation thinking that that might be the "phone state". But neither of those seemed to remove that permission required.
I found this bug report but it's marked working-as-intended with a note about permissions being correct from the market but not otherwise. Is this other people's experience? (I'd hate to have to publish to the market just to test that out.) Otherwise, does anyone know if there's an API I can avoid calling that will make it so my app doesn't need this permission?
For applications that set the android.permission.READ_PHONE_STATE permission. What is meant by "identity" in the permission description "read phone state and identity"? Users ask about this and we don't know what to tell them...
I have a simple app with a surfaceview nothing special one would say. However when installing on my phone I get two warnings. 1 - Phone calls - read phone state and identity 2 - Storage - modify/delete SD card content. My really is nothing more than a simple puzzle and I dont understand why I get these warnings.
I am developing an application that needs to access data on the sd card. When I run on my development device (an odroid with Android 2.1) I have root access and can construct the path using:
However, when I install this on a phone (2.1) where I do not have root access I get files == null. I assume this is because I do not have the right permissions to read the data from the sd card. I also get files == null when just trying to list files on /sdcard. So the same applies without my constructed path.
Also, this app is not intended to be distributed through the app store and is needs to use data copied separately to the sd card so this is a real use-case. It is too much data to put in res/raw (I have tried, it did not work).
I have also tried adding: <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
To the manifest, even though I only want to read the sd card, but it did not help. I have not found a permission type for reading the storage.
I have two published apps that are pretty targeted to the user collecting their personal medical data (like Blood Pressure, etc.) and then, eventually sending it somewhere, if they choose.
I decided to put Read/Write permission on my ContentProvider, so if another app comes along that wants to the access that content, the user will be warned. The permission that is required is declared in my apps.
When the user installs my apps, they are also given a warning that the app requires that permission (even though it's the one that declares it), and it shows up in the Marketplace also.
The question is: Is it possible that the permission acceptance part of installing my app could be putting customers off? I don't know what other's acceptance rate is, but mine is around 50% of customers who download it have active installs.
I'm a little confused by what I'm seeing with regards to phone state transitions via the PhoneStateListener. When I receive a call, this is what happens: (call comes in) RINGING -> IDLE (I pick up) OFFHOOK (I hang up) IDLE It's that first transition from RINGING to IDLE without any interaction from me (not ending the call, not answering the call) that confuses me. Do I really have to implement an idle counter to know that an incoming call has really ended? Seems like the reported phone state represents some sort of phone state that isn't the obvious one.Is this a bug or am I just not in tune with the paradigm here?
I have an HTC Evo. I hope I'm posting in the correct area. I had my phone number changed and the phone identity shows the old number. How can I change it? I ask because I had some voice mails that I didn't know about, I didnt get a notification. When I click on the voice mail icon, it says no voicemail. I have to dial my phone number to get the voicemail.
I just upgraded my Sprint HTC Hero to the latest official firmware. I was looking for 2 apps if they exist:
1: I had a program on 1.5 that was called city caller ID and it displayed the city and state of incoming calls. When I upgraded to the newest software, I can't locate this software in the Android market. So I was wondering if anyone out there had any suggestions on Caller ID apps that work good?
2: In regards to the other app, I was wondering if they had something like the Blackberry does where when I have the phone plugged in and the screen times out, a clock would be on the screen instead of just the normal black screen?
Background; I am in the process of writing an Android messaging application that needs to know the current user's phone number. This is then used to connect to other users using the application. My application relies on looking up the user's number from Android's Settings -> About Phone -> Phone identity -> Phone number (this can at times be blank.. but that is a separate problem). I am assuming that the above Phone number contains the user's full number. ie, my UK Android phone shows my number as: +447832xxxxxxxx, where 44 is the UK's international dialing code and 7832 is the operator. Is it safe to assume that all Androids phones would include the international dialing code, which starts with +? I would be indebted if any Android users could have a quick look at their Android settings and confirm whether Phone number is displayed as +international code+operator+number, i.e. US Android sets start with +1xxxxxx.
My old phone number appears to have been transferred over to my new contract this morning. So much for the text messages I was told I would receive before and after it happened. Anyway, If I go to Settings > About > Phone Identity It still shows my old number, how do I change it?
under Setting > About Phone > Phone Identity...Current username isn't what i have specified (although i donno how it has an address). how do you change that?Phone number was different so i called Sprint Store and got info to change, but didn't get help on the username.
I cant seem to find any posts about this but it has driven me nuts since I upgraded to Android from my non-smart phone. I don't want to give my number out to every app I install. Yes I understand I can not install apps that require this permission, but is there a way to "Spoof" this permission. in other words if an app requests my phone identity, it would return a fake number instead of my real number?
I have a compound UI component built up from a ViewGroup containing a number of TextView, ImageView etc. components. Many of these have StateListDrawables as their images/backgrounds. Is there any way of making them select from this drawable based on the state of the parent ViewGroup rather than the component itself? Ideally I want to be able to change the visual state of all children of the ViewGroup (text colour, image etc) based on the state of the ViewGroup, preferably without having to hook up complex logical code. This seems like a fairly common sort of requirement, so I was hoping it would be straightforward in Android - am I going to be disappointed?
In the course of moving to the 2.0 cotnact APIs,"As long as the contact's row ID remains the same, this URI is equivalent to CONTENT_URI. If the contact's row ID changes as a result of a sync or aggregation, this URI will look up the contact using indirect information " Currently, we store contact IDs to identify particular contacts. If I read this right, contact IDs will no longer be stable in the world of 2.0, and we will need to store a lookup URI (or at least a LOOKUP_KEY and a row ID) in order to identify a contact in a stable way. That would be a substantial change in our code. So, before I rush off to do it, I'd love to find out if a contact row ID change is going to be a routine thing (say, on every sync), or if it will be a very rare thing (say, when two contacts are manually combined into one, or some even rarer exception).
I'm looking for a way to determine user identity so I can globally track game scores off phone.IMEI provides identity of the phone - not effective if phone is on- traded or upgraded by individual. USIM provides identity of phone carrier subscriber - assumes device is phone, and currently has a SIM card.I'd like to be able to provide continuity as a user upgrades to a new device. And I dislike being forced to create an account on each global scoring system, so I don't want to force that on my users. And my end user experience with OpenFeint leaves me disinclined to use it.It doesn't need to be bullet proof. But it does need to be hassle free for my users.Is there any other identifier on an Android device that I can use to link data more cleanly with the current owner? And how would I get hold of that identifier? I'm thinking something like the user's Google account .. or similar
If anyone can help me with some information if there is a way to make an application on Android Dev Phone ask for permissions, like it does on G1. When I install an application on ADP, I only get the message "no permissions required", is there a way to make the ADP behave like a G1 phone?
The permissions say that you must agree to allow them to delete files from your storage including your SD card; must agree to allow them to extract any information from your phone, etc. In other words they can do any thing they want with your phone and the data in it.
Is there any way to not grant these permissions and still get updates?
I am writing an app where I get all the data from the rest call and display all the data in a custom component list(based on Linear Layout) which is added to a LinearLayout. I write this code in onCreate of the activity. The problem is when I switch activity using startActivity, and come back to the calling activity (using startActivity) then onCreate is called again. I see onPause, onStop called when I call other activity. Is there any way that I can save the application's state?
I have an OpenGL app that manipulates it's geometry in screen space to acheive some effects, and therefore bypasses OpenGL's matrices by setting modelview and projection to identity. For some reason, Android's OpenGL implementation seems to be unhappy with this, and doesn't draw anything. The same app, compiled from the same code base, works fine on windows and on iPhone. If I load the app's projection matrix into GL's matrix, and multiply it's inverse with the final geometry prior to drawing it (which is effectively a no-op) it displays correctly.
I was just working on an application that will do stuff when a call is missed or made; and am left wondering why do you have to register a listener using a long lived background service for phone state changes instead of being able to use broadcast intents?
I can see that we can get a phonestate via the PhoneStateListener, but there is no way of telling the state of the call. OFFHOOK is a number of states combined into one. Is there a particular reason for this? Are we not allowed to see the correct state of a call?
I noticed in the class TelephonyManager there are CALL_STATE_IDLE, CALL_STATE_OFFHOOK adn CALL_STATE_RINGING. They seem to be used for incoming calls.What I actually want to do is to be notified when an outgoing call is made, is received, or timed out. How to do that?
I'm writing an android application that maintains a lot of "state" data...some of it I can save in the form of onSaveInstanceState but some of it is just to complex to save in memory.
My problem is that sliding the phone open destroys/recreates the app, and I lose all my application state in the process. The same thing happens with the "back" button, but I overloaded that function on my way. Is there any way to overload the phone opening to prevent it from happening?
There appears to be a leak when using PhoneStateListeners. The following code simply reigsters in onResume and unregisters in onPause a PhoneStateListener. Repeatedly launch then press BACK (so the app is finished & onDestory is called before the next launch) and the number of activities reported by meminfo will equal the number of launches. For instance, here is the output I get after launching (and finishing) 11 times in sequence:
dumpsys meminfo com.example.leak Currently running services: meminfo DUMP OF SERVICE meminfo: Applications Memory Usage (kB): Uptime: 12204322 Realtime: 12204322
Without the PhoneStateListener, the number of activities is always 1 no matter how many times the app is launched & finished. So, am I doing anything wrong here? Or is this a bug in the TelephonyManager?
I would like to know what are the main differences between TelephonyManager and PhoneStateListener, because you can do (more or less) the same things with both. For example, you could create an incoming calls register implementing a broadcastreceiver and using TelephonyManger API or extending PhoneStateListener class and registering this new listener throughTelephonyManager . Case 1 - BroadcastReceiver (TelephonyManager)
I have built an application that listen to call state changes, and I want to notify a service when the call_state became IDLE.All the components I have are functional, I just need to notify (not start) a service for this.What's the correct practice, maybe using AIDL? Because, in a PhoneStateListener, I can't bind to a service. Do I have to start an activity for that?