I'm trying to release an APK and while I'm trying to Generate sign APK I get this error
Error:Error: Permission name C2D_MESSAGE is not unique (appears in both com.company.myApp.permission.C2D_MESSAGE and com.company.myApp2.permission.C2D_MESSAGE) [UniquePermission]
and here is my manifest file:
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.company.myApp">
<permission
android:name="com.company.myApp.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<supports-screens android:smallScreens="true" />
<supports-screens android:normalScreens="true" />
<supports-screens android:largeScreens="true" />
<supports-screens android:xlargeScreens="true" />
<supports-screens android:anyDensity="true" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_SECURE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--<uses-permission android:name="android.permission.INTERNET" />-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="com.company.myApp.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.CLEAR_APP_CACHE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<permission
android:name="com.company.myApp.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.company.myApp.permission.C2D_MESSAGE" />
<!-- App receives GCM messages. -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- Keeps the processor from sleeping when a message is received. -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application
android:name="com.company.myApp.TruckApplication"
android:allowBackup="true"
android:icon="#drawable/myApp_logo"
android:label="#string/app_name"
android:largeHeap="true"
android:sharedUserId="android.uid.system"
android:theme="#style/AppTheme" >
<uses-library android:name="com.google.android.maps" />
<activity
android:name="com.company.myApp.Authenticate_user_Activity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.company.myApp.Login_Activity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.company.myApp.SubmitWaiver_Activity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.company.myApp.PrepStopChoice"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<!--<activity-->
<!--android:name="com.company.myApp.Surveyold_Activity"-->
<!--android:configChanges="keyboardHidden|orientation|screenSize"-->
<!--android:screenOrientation="portrait" >-->
<!--</activity>-->
<activity
android:name="com.company.myApp.GetStops_Activity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.company.myApp.Load_Activity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.company.myApp.AddComment_Activity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustResize" >
</activity>
<activity
android:name="com.company.myApp.StopDetail_Activity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.company.myApp.CaptureImage_Activity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.company.myApp.Survey_Activity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.company.myApp.GetDirection_Activity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.company.myApp.Map_FragmentActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.company.myApp.TabBar"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.company.myApp.ShowStopList_Activity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.company.myApp.PrepActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:screenOrientation="landscape" >
</activity>
<activity
android:name="com.company.myApp.TransprentActivity"
android:noHistory="true"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Translucent.NoTitleBar"
android:windowSoftInputMode="stateHidden|adjustPan" >
</activity>
<receiver
android:name="com.google.android.gcm.GCMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.company.myApp" />
</intent-filter>
</receiver>
<service android:name="com.myApp.Service.SyncService" >
</service>
<receiver android:name="com.myApp.BrodcastReciver.NetworkStateReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<receiver android:name="com.company.myApp.RepeatingAlarmService" />
<receiver android:name="com.company.myApp.RepeatingAlaramCommunication" />
<receiver android:name="com.company.myApp.ReaptingAlramNewStops" />
<service android:name="com.myApp.Service.LogoutService" >
</service>
<service android:name="com.myApp.Service.CallNewStop_Service" >
</service>
<service android:name="com.myApp.Service.CheckingGooglePlayVersionService" >
</service>
<receiver
android:name="com.myApp.BrodcastReciver.DateTimeChangeReceiver"
android:enabled="true"
android:exported="false" >
<intent-filter>
<action android:name="android.intent.action.DATE_CHANGED" />
</intent-filter>
</receiver>
<!-- Start the Service if applicable on boot -->
<receiver android:name="com.myApp.BrodcastReciver.PhoneReStartReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service
android:name="com.company.myApp.TruckLocationUpdateService"
android:enabled="true" />
<service
android:name="com.company.myApp.TruckCommubicationcountService"
android:enabled="true" />
<service android:name="com.company.myApp.GCMIntentService" />
<service android:name="com.company.myApp.HandleNotification" />
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyB6Ae82d_eLZ1nMYIW7EaaQ3-2-Xn7duHs" />
<!-- android:value="AIzaSyAkZzWl6FSP89yWf7VeX6ooYvd6SuRnV4E" /> -->
</application>
<!--<uses-permission-->
<!--android:name="android.permission.ACCESS_MOCK_LOCATION"-->
<!--android:required="false" />-->
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<uses-permission
android:name="android.permission.FLASHLIGHT"
android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
android:protectionLevel="normal"
android:required="false" />
</manifest>
anyone has an idea whats wrong with this ? I have tried changing uses-permission to permission, where it had C2D_ it didn't work.
You may refer with this post.
Remove
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"/>
<permission
android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature"/>
Run App then add the permisson again and Run App.
This problem often occurs when you try to install debug and release version of your app on the same device.
Related
Push notification not working in my app.
When I send push notification it show message as below:
GCM HTTP status: 200
GCM response body: {"multicast_id":5052582973644051315,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"NotRegistered"}]}
My menifest code is as below:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.scryp">
<permission
android:name="com.scryp.permission.MAPS_RECEIVE"
android:protectionLevel="signature"></permission>
<uses-permission android:name="com.skryp.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="com.example.gcm.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:name=".activities.SkrypApplication"
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme">
<activity
android:name="com.scryp.activities.SplashActivity"
android:label="#string/app_name"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<service
android:name="com.scryp.activities.PushNotificationService"
android:exported="false">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</service>
<receiver
android:name="com.google.android.gms.gcm.GcmReceiver"
android:exported="true"
android:permission="com.google.android.c2dm.permission.SEND">
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.scryp.activities" />
</intent-filter>
</receiver>
<activity
android:name="com.scryp.activities.LoginActivity"
android:label="#string/title_activity_login"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateAlwaysHidden" />
<activity
android:name="com.scryp.activities.SignupActivity"
android:label="#string/title_activity_signup"
android:screenOrientation="portrait" />
<activity
android:name="com.scryp.activities.ForgotPasswordActivity"
android:label="#string/title_activity_forgot_password"
android:screenOrientation="portrait" />
<activity
android:name="com.scryp.activities.ProfileActivity"
android:label="#string/title_activity_profile"
android:screenOrientation="portrait" />
<activity
android:name="com.scryp.activities.CouponActivity"
android:label="#string/title_activity_coupon"
android:screenOrientation="portrait" />
<activity
android:name="com.scryp.activities.HomeActivity"
android:label="#string/title_activity_home"
android:screenOrientation="portrait"
android:windowSoftInputMode="adjustPan" />
<activity
android:name="com.scryp.activities.CouponDetailActivity"
android:screenOrientation="portrait"></activity>
<activity
android:name="com.scryp.activities.DownloadCouponActivity"
android:screenOrientation="portrait"></activity>
<activity
android:name="com.scryp.activities.TutorialActivity"
android:screenOrientation="portrait"></activity>
<activity android:name="com.facebook.FacebookActivity" />
<meta-data
android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="AIzaSyB4rU0s2yS-3RGu5GQOb_L_JG6_H5toy60" />
<meta-data
android:name="com.facebook.sdk.ApplicationId"
android:value="#string/facebook_app_id" />
</application>
</manifest>
<permission android:name="com.example.gcm.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.example.gcm.permission.C2D_MESSAGE" />
Change com.example.gcm to com.scryp:
I experience this error when trying to test the app on my phone on Run. I dunno why this error pop out but I have try to do some fix based based on some solution from stack but it is not working.
my pkg: /data/local/tmp/com.example.wolex_000.freesim
MY Manifest code is:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.chat.freshim"
android:versionCode="1"
android:versionName="0.1" >
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<!-- FOR QB -->
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-feature android:name="android.hardware.camera"/>
<uses-feature android:name="android.hardware.camera.autofocus"/>
<uses-feature android:name="android.hardware.camera.flash"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<!-- For GCM -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- For GCM
<permission android:name=".permission.C2D_MESSAGE"
android:protectionLevel="signature" /> -->
<uses-permission android:name=".permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="#drawable/icon_fresh"
android:label="fssl"
android:theme="#style/MyTheme">
<activity
android:name="com.chat.freshim.LoginActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden"
android:label="fssl"
android:theme="#style/NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.chat.freshim.FriendsListActivity"
android:screenOrientation="portrait"
android:launchMode="singleTask"
android:theme="#style/NoActionBar"/>
<activity
android:name="com.chat.freshim.FriendsAllListActivity"
android:screenOrientation="portrait"
android:launchMode="singleTask"/>
<activity
android:name="com.chat.freshim.FriendsDetailActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden"/>
<activity
android:name="com.chat.freshim.RegisterActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden"/>
<activity
android:name="com.chat.freshim.UserDetailActivity"
android:screenOrientation="portrait"/>
<activity
android:name="com.chat.freshim.StatusActivity"
android:screenOrientation="portrait"/>
<activity
android:name="com.chat.freshim.SettingsActivity"
android:screenOrientation="portrait"/>
<activity
android:name="com.chat.freshim.EditProfileActivity"
android:screenOrientation="portrait"/>
<activity
android:name="com.chat.freshim.EditPasswordActivity"
android:screenOrientation="portrait"/>
<activity
android:name="com.chat.freshim.GroupCreateActivity"
android:screenOrientation="portrait"/>
<activity
android:name="com.chat.freshim.GroupListActivity"
android:screenOrientation="portrait"
android:launchMode="singleTask"/>
<activity
android:name="com.chat.freshim.GroupMessageDetailActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden"/>
<activity
android:name="com.chat.freshim.GroupChooseFriendListActivity"
android:screenOrientation="portrait"/>
<activity
android:name="com.chat.freshim.GroupDetailActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden"/>
<activity
android:name="com.chat.freshim.GroupEditMemberListActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden"/>
<activity
android:name="com.chat.freshim.UploadFileActivity"
android:screenOrientation="portrait"/>
<activity
android:name="com.chat.freshim.CountryCodesActivity"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden"/>
<activity
android:name="com.chat.freshim.InviteFriends"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden"/>
<activity
android:name="com.chat.freshim.AddContactFriend"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden"/>
<!-- QB ACTIVITY AND SERVICES -->
<activity
android:name="com.chat.freshim.qb.ActivityVideoChat"
android:label="fssl"
android:screenOrientation="portrait"
android:theme="#style/NoActionBar"/>
<activity
android:name="com.chat.freshim.qb.ActivityCallUser"
android:label="fssl"
android:screenOrientation="portrait"/>
<service android:name="com.quickblox.module.videochat.core.service.QBVideoChatService"/>
<!-- For GCM -->
<receiver
android:name="com.chat.freshim.GcmBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.chat.imapp" />
</intent-filter>
</receiver>
<service android:name="com.chat.freshim.services.GcmIntentService" />
<service android:name="com.chat.freshim.services.LoadImageService" />
<service android:name="com.chat.freshim.services.LoadFileService" />
<service android:name="com.chat.freshim.services.ResponseRequestService" />
<service android:name="com.chat.freshim.services.FriendRequestService" />
<service android:name="com.chat.freshim.services.DownLoadFileService" />
<service android:name="com.chat.freshim.services.DownloadImageService" />
<service android:name="com.chat.freshim.services.LastSeenGetService" />
<service android:name="com.chat.freshim.services.LastSeenSetService" />
<service android:name="com.chat.freshim.services.QbRegisterService" />
<!--service android:name="com.quickblox.module.chat.videochat.VideoChatService"/-->
<!-- For GCM -->
<meta-data
android:name="com.google.android.gms.version"
/>
</application>
I have try some help but have not get the solution to it.
Your <meta-data> tag is missing the required android:value entry. It should read:
<meta-data android:name="com.google.android.gms.version"
android:value="#integer/google_play_services_version" />
Try removing this line :
<meta-data
android:name="com.google.android.gms.version"
/>
I published an android app in google playstore. Some clients complain about not being able to download the app as the play stores says it is "not compatible".
In google developer console, I can only see THAT a device is not supported. I want to know WHY a device is incompatible but that information is hidden from me.
Google has to have this information to determine compatibility, why is there no way to show this information to developers? Or am I wrong?
We'd really appreciate that feature, it is vital I think.
One device that fails, is for example: medion lifetab e10315
http://www.amazon.de/Medion-LIFETAB-Tablet-PC-Android-schwarz/dp/B00HA4M91W
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.example.changed.android2"
android:installLocation="auto"
android:versionCode="1"
android:versionName="xxx" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="18" />
<!-- Only this application can receive the messages and registration result -->
<permission
android:name="de.example.changed.android2.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<permission
android:name="de.example.changed.android2.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<!-- Required permission to check licensing. -->
<uses-permission android:name="com.android.vending.CHECK_LICENSE" />
<uses-permission android:name="de.example.changed.android2.permission.MAPS_RECEIVE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="de.example.changed.android2.permission.C2D_MESSAGE" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--in app paying-->
<uses-permission android:name="com.android.vending.BILLING" />
<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" >
</supports-screens>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-feature
android:name="android.hardware.camera"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<uses-feature
android:name="android.hardware.telephony"
android:required="false" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="false" />
<!-- suppress AndroidDomInspection -->
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:label="Tests for xxx"
android:targetPackage="de.example.changed.android2" />
<android:uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:name=".xxxApp"
android:allowBackup="false"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/Theme.xxx" >
<uses-library android:name="com.google.android.maps" />
<uses-library android:name="android.test.runner" />
<receiver
android:name=".services.C2DMReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="de.example.changed.android" />
</intent-filter>
<intent-filter>
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="de.example.changed.android" />
</intent-filter>
</receiver>
<receiver android:name=".services.NetworkChangeReceiver" >
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
</intent-filter>
</receiver>
<receiver android:name=".services.SMSReceiver" >
<intent-filter android:priority="9999" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<activity
android:name=".ui.RegistrationActivity"
android:label="#string/app_name" >
</activity>
<activity
android:name=".ui.MapActivity"
android:configChanges="orientation|screenSize|keyboardHidden" />
<activity
android:name=".ui.SettingsActivity"
android:configChanges="orientation|screenSize" />
<activity
android:name=".ui.GroupsEdit"
android:parentActivityName=".ui.GroupsList" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="de.example.changed.android2.ui.GroupsList" />
</activity>
<activity
android:name=".ui.GroupsList"
android:parentActivityName=".ui.AlertListActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="de.example.changed.android2.ui.AlertListActivity" />
</activity>
<activity
android:name=".ui.AlertListActivity"
android:exported="true" />
<activity android:name=".ui.HelpActivity" />
<activity
android:name=".ui.AlertDetailActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:parentActivityName=".ui.AlertListActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="de.example.changed.android2.ui.AlertListActivity" />
</activity>
<activity
android:name=".ui.AlertPopupActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:noHistory="true" >
</activity>
<activity
android:name=".services.helper.test.EncryptionTest"
android:label="#string/title_activity_encryption_test" >
</activity>
<activity
android:name=".services.helper.test.EncryptionClientTest"
android:label="#string/title_activity_encryption_client_test" >
</activity>
<activity
android:name=".ui.BlockedAlertListActivity"
android:label="#string/title_activity_blocked_alert_list" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="de.example.changed.android2.ui.AlertListActivity" />
</activity>
<activity
android:name=".ui.StartActivity"
android:label="#string/app_name"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.FeedbackCustomTextActivity"
android:windowSoftInputMode="stateUnchanged" />
<!-- Widgets -->
<receiver
android:name=".ui.Widget"
android:label="#string/widget_title" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<intent-filter>
<action android:name="de.example.changed.android2.ui.Widget.WIDGET_CLICK" />
</intent-filter>
<intent-filter>
<action android:name="de.example.changed.android2.ui.Widget.WIDGET_UPDATE_UI" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="#xml/widget_provider" />
</receiver>
<!-- Services -->
<!-- Provider -->
<provider
android:name=".provider.FilterProvider"
android:authorities="de.example.changed" >
</provider>
<activity android:name=".ui.FeedbackOverviewActivity" >
</activity>
<activity
android:name=".ui.ProfileListActivity"
android:label="#string/title_activity_profile_list"
android:parentActivityName=".ui.GroupsList" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="de.example.changed.android2.ui.GroupsList" />
</activity>
<activity
android:name=".ui.ProfileEditActivity"
android:label="#string/title_activity_profile_edit" >
</activity>
<activity
android:name=".billing.BillingActivity"
android:label="#string/title_activity_billing" >
</activity>
</application>
</manifest>
remove android:targetSdkVersion="18"
I just trying to publish my android app, I signed my application from my keystore, but Google Play console displaying me supported devices is zero. I am using Android SDK only for my app. Any reason why this so ??
Android Manifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.info.android"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_CALL_LOG" />
<uses-permission android:name="android.permission.WRITE_CALL_LOG" />
<uses-feature
android:name="android.harware.telephony"
android:required="true" />
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<!-- Activities -->
<activity
android:name="com.info.SplashActivity"
android:clearTaskOnLaunch="true"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.info.Terms"
android:label="#string/terms_title"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.info.SetPin"
android:label="#string/set_pin_title"
android:screenOrientation="portrait" />
<activity
android:name="com.info.AddEditBuddy"
android:label="#string/manage_friends_title"
android:screenOrientation="portrait" />
<activity
android:name="com.info.Login"
android:finishOnTaskLaunch="true"
android:label="#string/login_title"
android:screenOrientation="portrait" />
<activity
android:name="com.info.Backup"
android:label="#string/backup_title"
android:screenOrientation="portrait" />
<activity
android:name="com.info.RestoreActivity"
android:label="#string/restore_title"
android:screenOrientation="portrait" />
<activity
android:name="com.info.ClearData"
android:label="#string/clear_data_title"
android:screenOrientation="portrait" />
<activity
android:name="com.info.Settings"
android:label="#string/setting_title"
android:screenOrientation="portrait" />
<activity
android:name="com.info.StolenMode"
android:label="#string/stolen_setting_title"
android:screenOrientation="portrait" />
<activity
android:name="com.info.AppPin"
android:label="#string/apppin_setting_title"
android:screenOrientation="portrait" />
<activity
android:name="com.info.Lock"
android:excludeFromRecents="true"
android:label="#string/lock_title"
android:launchMode="singleTask"
android:screenOrientation="portrait" />
<activity
android:name="com.info.Home"
android:label="#string/home_title"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="com.info.SMSCommands"
android:label="#string/title_activity_smscommands" >
</activity>
<activity
android:name="com.info.FileExplore"
android:label="#string/restore_title" >
</activity>
<!-- Receivers -->
<receiver android:name="com.info.BasicFuzz" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.HOME" />
</intent-filter>
</receiver>
<receiver android:name="com.info.IncomingSMSReceiver" >
<intent-filter android:priority="2147483647" >
<action android:name="android.provider.Telephony.SMS_RECEIVED" />
</intent-filter>
</receiver>
<!-- Services -->
<service android:name="com.info.ResetService" />
<service android:name="com.info.SmartFuzzService" />
<service android:name="com.info.GPSLocationService" />
</application>
</manifest>
Missing a char 'd' in uses-feature android:name="android.harware.telephony"
I have hosted my app on the Google Play Store. Most phones can go to the store and download it successfully. Certain phones can not see the listing, these phones are running Android 2.3.6.
I've a feeling that the target api in the manifest may have something to do with it?
This is what i have in my manifest.
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="11" />
.
All the phones on 4.x are fine.
Why can't lower Android phones see the listing?
Thanks.
[edit]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.carefreegroup.rr3"
android:versionCode="24"
android:versionName="3.0.2"
android:installLocation="internalOnly"
>
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="11"
/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!-- <uses-permission android:name="android.permission.NFC" /> -->
<permission
android:name="com.carefreegroup.rr3.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name="com.carefreegroup.rr3.permission.C2D_MESSAGE" />
<uses-feature
android:name="android.hardware.nfc"
android:required="true" />
<!-- App receives GCM messages. -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<!-- GCM requires a Google account. -->
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<!-- Keeps the processor from sleeping when a message is received. -->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.PREVENT_POWER_KEY" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"></uses-permission>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.FLASHLIGHT" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="com.android.browser.permission.READ_HISTORY_BOOKMARKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-feature android:name="android.hardware.camera" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="false" />
<uses-feature
android:name="android.hardware.camera.flash"
android:required="false" />
<uses-feature android:name="android.hardware.screen.landscape" />
<uses-feature
android:name="android.hardware.wifi"
android:required="false" />
<uses-feature
android:name="android.hardware.touchscreen"
android:required="false" />
<!-- Donut-specific flags which allow us to run on any dpi screens. -->
<supports-screens
android:anyDensity="true"
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:xlargeScreens="true" />
<application
android:name=".NfcScannerApplication"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#android:style/Theme.Light"
android:debuggable = "false" >
<uses-library android:name="com.google.android.maps" />
<activity
android:name=".NfcscannerActivity"
android:screenOrientation="portrait"
>
<intent-filter>
<action android:name="android.nfc.action.NDEF_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="com.carefreegroup.rr3.QRCODE_ACTION" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="android.nfc.action.TECH_DISCOVERED" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<meta-data
android:name="android.nfc.action.TECH_DISCOVERED"
android:resource="#xml/nfc_tech_filter" />
</activity>
<activity
android:name=".EntryActivity"
android:label="#string/app_name"
android:screenOrientation="portrait"
android:launchMode="singleTask" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".LoadTransactionsMap" />
<activity
android:name=".ViewTransactions"
android:screenOrientation="portrait" />
<activity
android:name=".LoginValidate"
android:screenOrientation="portrait" />
<activity
android:name=".ViewTransactionsTest"
android:screenOrientation="landscape" />
<activity
android:name=".NfcBaseActivity"
android:screenOrientation="portrait" />
<activity android:name=".CaptureActivity" >
<intent-filter>
<action android:name="com.carefreegroup.rr3.SCAN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".ViewQrCodes"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".ValidateUser"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".ReportSomething"
android:screenOrientation="portrait"
android:windowSoftInputMode="stateHidden" >
</activity>
<activity
android:name=".GetClientDirections"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".ViewPhoneNumbers"
android:launchMode="singleTop"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".GetRota"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".GetRotaDetails"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".ShowMoreDetails"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".ReplyToMessageActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".ViewMessagesActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".SendStandaloneMessageActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".RecordActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".DisplayMessageActivity"
android:screenOrientation="portrait"
android:theme="#android:style/Theme.Dialog" >
</activity>
<activity
android:name=".MessageRecipientActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".CachedRotaActivity"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".EmailLog"
android:screenOrientation="portrait" >
</activity>
<service android:name=".SendOutstandingTransactionsIntentService" />
<service android:name=".QueryService" />
<service android:name=".LocationService" />
<service android:name=".SignalService" />
<service
android:name=".SendOutstandingTransactions"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="com.carefreegroup.rr3.startatboot.MyService" />
</intent-filter>
</service>
<receiver
android:name="AlarmReceiver"
android:process=":remote" >
</receiver>
<service
android:name=".DeleteDuplicateTXTableService"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="com.carefreegroup.rr3.startatboot.DupTXService" />
</intent-filter>
</service>
<receiver
android:name="DuplicateTXReceiver"
android:process=":remote" >
</receiver>
<service android:name=".EmailLog" />
<service android:name=".GCMIntentService" />
<receiver android:name="com.google.android.gcm.GCMBroadcastReceiver" android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.carefreegroup.rr3" />
</intent-filter>
</receiver>
</application>
NFC was added in API Level 10. More importantly, few API Level 10 and below devices have NFC hardware. You are requiring that devices have NFC hardware; ergo, you will not have very many API Level 10 and below devices that support your app.
If you do not absolutely need NFC to function, use android:required="false", and check for NFC availability at runtime, either via PackageManager and hasSystemFeature(), or just whether you can get your NfcAdapter.
In addition:
You will only be available for devices that have Maps V1, and I would imagine that some newer devices will start dropping support for that, since Maps V1 has been deprecated for a year.
You are wasting CPU and memory with those :remote receivers
There is no PREVENT_POWER_KEY permission in Android