Skip to main content

Permission for Call

I add to my app (Show The Way) one new permission for call. This is just for advertisment. Ads library needs it for ads with phone number. My app or ads do not use it without user permission. Any of my codes don't use that permission. It is just for advertisment library.

I just release an new update without that permission. After two bad comment and one update experience with my friends phone, i realize this permission says to user :

"SERVICES THAT COST YOU MONEY DIRECTLY CALL PHONE NUMBERS Allows the app to call phone numbers without your intervention. Malicious apps may cause unexpected calls on your phone bill. Note that this doesn't allow the app to call emergency numbers."

 Because of that information some users don't like my update an give bad comment for this premission.

It is just for adv library and my app does not have this permission with new update.

My apps only source of income is advertisment.

If you find my blog or apps useful, please consider donating. 


  1. What ad library are you using? With CALL permission the developer can immediately cause the phone to make a call (which of course cost money).

    I am using DIAL intent instead of CALL intent. The DIAL intent open the phone application with a given phone number.

    BTW actionbarsherlock is the good choice. The new design of your app is great.

  2. I use inmobi and admob for ads and inmobi's new library needs it to enable the user to make calls from Ads. I realize that this is an optional permission. I remove it now.


Post a Comment

Popular posts from this blog

Using Accelerometer when Screen Off


Android Phones have a lot of built-in sensor such as gyro, proximity and accelerometer.
Using Accelerometer in Android is a known thing. For listening sensors, class or service needs a SensorEventListener implementation. An Activity is only exists when you are seeing it. When phone enters standby mode, activity which was recently active frozen and restored whenever needed. While this frozen time, activity doesn’t run. Because of that it doesn’t need sensor updates. And Android stop to listen some sensors for power management.

Services have this condition like classes (activity). In contrast to class, a service run every time, even when phone is in standby mode. Therefore Services needs sensor updates for some situations. But android stop to listen some sensor(accelerometer) in some different phones.

There is a solution for that. This is not an exact solution but it work with a lot of phones.

With a BroadcastReceiver listenIntent.ACTION_SCREEN_OFFand register sensor listener a…

How to change position of MyLocationButton on new Map API v2? Explained

When an app use map and design some layout on this map (TextView, Button or image), developer needs to change position of default buttons of map view. (MyLocationButton, ZoomControl or compass...) As far as i know, there are two possible way for changing position of myLocationButton's position.

1- * - Disable it
    * - Create new button programmatically
    * - Add animateCamera(toCurrentLocation) to onClickListener of this button
    * - And place it wherever you want

But if you don't want to write all that there is a hack for that.

2 - * - findViewById() of hardcoded button with;
ZoomControl id =0x1MyLocation button id =0x2      * - And do whatever you want:
// Find map fragment
SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(;

// Find myLocationButton view
View myLocationButton = mapFragment.getView().findViewById(0x2);

if (myLocationButton != null && myLocationButton.getLayoutParams() instanceof RelativeLayout.…

How to use SwipeRefreshLayout? Example

Google just released a new version of Android Support Library with SwipeRefreshLayout[1]. It is pull to refresh layout based on Google Now, not Gmail. Before this release most of android developers use PullToRefresh library from Chris Banes (Special thanks to him for great libraries and android development tips) But with the recent release of Google, Chris drop his support to own library - PullToRefresh. [2] We have SwipeRefreshLayout now it is simple to use with a few line of codes.

Step One: Install
Update your Android Support Library in Android SDK manager and make sure you have version 19.1. Then right click on project and select "Android Tools->Add Support Library". After instaltion your project has brand new support library.

Step Two: Layout
You should add your scrool view or list view in to a "SwipeRefreshLayout"

< xmlns:android="" android:id="@+id/srl_contai…