Here is my android manifest file:
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name" >
<activity
android:name=".view.MainActivity"
android:label="#string/app_name"
android:screenOrientation="reverseLandscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<data
android:host="mocha"
android:path="/RTT/reset"
android:scheme="content" />
</intent-filter>
</activity>
<activity
android:name="ihpc.mocha.fakertt.view.SessionTimeOutActivity"
android:label="#string/app_name"
android:screenOrientation="reverseLandscape">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="mocha"
android:path="/RTT/sessionTimeOut"
android:scheme="content" />
</intent-filter>
</activity>
</application>
It shows that I have registered implicit intent here
<data android:host="mocha"
android:path="/RTT/reset"
android:scheme="content" />
Now when I call it from another app
Intent gameInfoIntent = new Intent(Intent.ACTION_VIEW);
gameInfoIntent.setData(Uri.parse("content://mocha/RTT"
+ "/reset"));
gameInfoIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PackageManager packageManager = getPackageManager();
List<ResolveInfo> activities = packageManager
.queryIntentActivities(gameInfoIntent, 0);
boolean isIntentSafe = activities.size() > 0;
if (isIntentSafe) {
startActivity(gameInfoIntent);
finish();
} else {
}
It is showing no activity found for
"content://mocha/RTT/reset"
I tried calling this code form same activity as well for testing purpose but result is same.
Please suggest me where and what I am doing wrong?
UPDATE:
I am able to call session time out activity by putting suggested code in the comments.
I have updated my manifest like this:
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="mocha"
android:path="/RTT/reset"
android:scheme="content" />
</intent-filter>
</activity>
<activity
android:name="ihpc.mocha.fakertt.view.SessionTimeOutActivity"
android:label="#string/app_name"
android:screenOrientation="reverseLandscape">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="mocha"
android:path="/RTT/sessionTimeOut"
android:scheme="content" />
</intent-filter>
</activity>
</application>
But I am still unable to call main activity.
I have resolved my problem by adding below lines to my manifest file
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
Here is my new look manifest file
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="ihpc.mocha.rtt"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="12" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:largeHeap="true"
android:theme="#android:style/Theme.NoTitleBar" >
<activity
android:name="ihpc.mocha.rtt.MainScene"
android:label="#string/app_name"
android:screenOrientation="reverseLandscape" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="mocha"
android:path="/RTT/reset"
android:scheme="content" />
</intent-filter>
</activity>
<activity
android:name="ihpc.mocha.rtt.SessionTimeOutActivity"
android:label="#string/app_name"
android:screenOrientation="reverseLandscape" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="mocha"
android:path="/RTT/sessionTimeOut"
android:scheme="content" />
</intent-filter>
</activity>
</application>
</manifest>
Hope this will help other developers as well !!!
Related
When I add the following code in the AndroidManifest the app is missing (disappears) from my device.
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https"
android:host="www.example.com"
android:pathPrefix="/gizmos"/>
</intent-filter>
If I don't add this code the app is installed and appears as it should be BUT I get warning:
App is not indexable by Google Search; consider adding at least one Activity with an ACTION-VIEW intent filter.
I already did research from official documentation and also this question but still my problem is different.
EDIT:
Here is all my manifest:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<application
android:allowBackup="true"
android:fullBackupContent="true"
android:icon="#mipmap/icon"
android:label="#string/app_name"
android:supportsRtl="true"
android:theme="#style/AppTheme"
android:screenOrientation="portrait">
<activity android:name=".MainActivity"
android:theme="#style/FullScreenTheme"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https"
android:host="www.example.com"
android:pathPrefix="/gizmos"/>
</intent-filter>
<activity android:name=".AnimationScreenActivity"
android:theme="#style/FullScreenTheme"
android:screenOrientation="portrait"/>
</activity>
</application>
You are not closing your intent filter right
<activity android:name=".MainActivity"
android:theme="#style/FullScreenTheme"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
After #Harisali help, the solution is to separate it in two <intent-filter> like this:
<activity android:name=".MainActivity"
android:theme="#style/FullScreenTheme"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https"
android:host="www.example.com"
android:pathPrefix="/gizmos"/>
</intent-filter>
</activity>
Uninstall the app and run the code, sometimes the old package might be overwritten.
I made an app that (just recently) stopped showing up in my app drawrer. It shows up as an installed app in Titanium Backup, but when I select it, it does not give me a "run app" option. The only way I am able to run it is by running it in Android Studio. I am pretty sure i have messed something up in my manifest that is making it act weird. Can anyone help me figure out what is wrong with my manifest? I have been comparing it to many different manifests and I tried removing and changing several lines in it but no luck.
I am by far no expert in development therefore if the problem I am having is due to a very small error that I may not understand, be easy on me.
Here is my manifest. This is a text messaging app.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.user.sms"
>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_MMS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.provider.Telephony.SMS_RECEIVED"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="#string/app_name"
android:windowSoftInputMode="adjustPan" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SENDTO" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
</activity>
<!-- BroadcastReceiver that listens for incoming MMS messages -->
<receiver android:name=".MmsReceiver"
android:permission="android.permission.BROADCAST_WAP_PUSH">
<intent-filter>
<action android:name="android.provider.Telephony.WAP_PUSH_DELIVER" />
<data android:mimeType="application/vnd.wap.mms-message" />
</intent-filter>
</receiver>
<!-- BroadcastReceiver that listens for incoming MMS messages -->
<receiver android:name=".SmsReceiver"
android:permission="android.permission.BROADCAST_SMS">
<intent-filter>
<action android:name="android.provider.Telephony.SMS_DELIVER" />
<action android:name="android.provider.Telephony.SMS_RECEIVED"/>
</intent-filter>
</receiver>
<!-- Service that delivers messages from the phone "quick response" -->
<service android:name=".QuickReply"
android:permission="android.permission.SEND_RESPOND_VIA_MESSAGE"
android:exported="true" >
<intent-filter>
<action android:name="android.intent.action.RESPOND_VIA_MESSAGE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
</service>
</application>
</manifest>
You need to use two different intent-filter, one for the android.intent.action.MAIN action and one for the android.intent.action.SEND and android.intent.action.SENDTO actions.
Change your AndroidManifest.xml from this:
<activity
android:name=".MainActivity"
android:label="#string/app_name"
android:windowSoftInputMode="adjustPan" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.SEND" />
<action android:name="android.intent.action.SENDTO" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="sms" />
<data android:scheme="smsto" />
<data android:scheme="mms" />
<data android:scheme="mmsto" />
</intent-filter>
</activity>
to this:
<activity
android:name=".MainActivity"
android:label="#string/app_name"
android:windowSoftInputMode="adjustPan" >
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<action android:name="android.intent.action.SENDTO"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="sms"/>
<data android:scheme="smsto"/>
<data android:scheme="mms"/>
<data android:scheme="mmsto"/>
</intent-filter>
</activity>
My app used to work just fine, its icon displayed when installed in applications and it was uploaded to the Play Store. Now when I install it, it is like invisible, and in the Play Store it just says Uninstall, not open. What would be the reason for this?
Thanks.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="redacted" >
<uses-permission android:name="android.permission.INTERNET"/>
<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_GPS" />
<uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
<uses-permission android:name="android.permission.ACCESS_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application
android:screenOrientation="portrait"
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme"
android:hardwareAccelerated="true"
>
<activity
android:name=".aboutclass"
android:configChanges="orientation|screenSize"
android:label="#string/app_name" >
<intent-filter>
<action android:name="redacted.aboutclass" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".MainActivity"
android:configChanges="orientation|screenSize"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="redacted.MainActivity" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"/>
<data android:scheme="https"/>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
</application>
</manifest>
This problem occurs when you include the <data> element in the same intent-filter as your action.MAIN, which does not expect any data.
You could try splitting the intent-filter like this:
<activity
android:name=".MainActivity"
android:configChanges="orientation|screenSize"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="redacted.MainActivity" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"/>
<data android:scheme="https"/>
<action android:name="android.intent.action.VIEW" />
</intent-filter>
</activity>
See this previous answer.
Use case:
The user need to go to the default contact app
The user selects a user
The user clicks on phonenumber
The user gets a dialog and can choose my application
Question
My question is about step 4. What do i need to implement that functionality (maybe a intent filter)?
edit1: update manifest
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="********"
android:versionCode="26"
android:versionName="1.0.11">
<uses-sdk
android:minSdkVersion="10"
android:targetSdkVersion="17"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.READ_PHONE_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.READ_LOGS"/>
<uses-permission android:name="android.permission.USE_SIP"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<!-- temporary for contact call -->
<uses-feature
android:name="android.hardware.microphone"
android:required="true"/>
<application
android:name=".AppContext"
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme">
<activity
android:name=".ui.MainActivity"
android:label="#string/app_name"
android:theme="#style/Theme.Base.AppCompat.Light.DarkActionBar"
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=".ui.WebviewActivity"
android:label="#string/app_name"
android:screenOrientation="portrait">
</activity>
<activity android:name=".ui.InCallActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="tel" />
</intent-filter>
</activity>
</application>
</manifest>
Yes. You need to add intent filters with action ACTION_DIAL/ACTION_CALL to one of your Activities.
Intent-filter for Native Phone app Dialer Activity:
<intent-filter>
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="vnd.android.cursor.item/phone" />
<data android:mimeType="vnd.android.cursor.item/person" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="voicemail" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
<!-- <category android:name="android.intent.category.LAUNCHER" /> -->
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<action android:name="android.intent.action.DIAL" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="tel" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:mimeType="vnd.android.cursor.dir/calls" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.CALL_BUTTON" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
<!--
This was never intended to be public, but is here for backward
compatibility. Use Intent.ACTION_DIAL instead.
-->
<intent-filter>
<action android:name="com.android.phone.action.TOUCH_DIALER" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.TAB" />
</intent-filter>
It works now with this code:
<activity android:name=".ui.InCallActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.CALL" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.CALL_PRIVILEGED" />
<data android:scheme="tel" />
</intent-filter>
</activity>
In the android guidelines they say not to use call_privileged, but their is not another good option at the moment.
UPDATE
So far this only happens on the HTC OneX using Android 4.0.3
I have two share-to menu items in the android share menu.
When the user shares an image from android gallery, my app displays two
icons so user can have easy access to two different part of my app.
See picture.
This works fine in API v8, but in API v15 on a real device one of them is missing. API v15 emulator is ok!
In my AndroidManifest.xml this two Activity's set an icon in the share menu.
- ActivityMainLauncher
- ActivityQuickLauncher
The images are places in the hdpi, mdpi, ldpi folders.
The size is 72,48,36 pixels and they are PNG images.
Photoshop shows same resolution 72,009 for all three images.
UPDATE
added drawable-xhdpi folder for 96pix, but I have still only one item the: "SPRiiD"
This behavior is so strange, I don't know where to start debug.
I think there is something new in the API v15 that I have overseen?
Image of emulator API v15 correctly showing the two choices.
This is my AndroidManifest.xml file.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:installLocation="internalOnly"
package="com.carlsberg.dumbo"
android:versionCode="12"
android:versionName="0.83" >
<!-- android:versionCode as the basis for identifying the application internally and handling updates, -->
<!-- android:versionName to users as the application's version -->
<permission
android:name="com.carlsberg.dumbo.permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<supports-screens android:anyDensity="true" />
<uses-permission android:name="com.carlsberg.dumbo.permission.C2D_MESSAGE" />
<!-- <uses-permission android:name="android.permission.SET_DEBUG_APP"></uses-permission> -->
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" >
</uses-permission>
<uses-sdk android:minSdkVersion="8" />
<application
android:icon="#drawable/launcher_gallery"
android:label="#string/string_app_name" >
<activity
android:name=".ActivityMainLauncher"
android:configChanges="keyboardHidden|orientation"
android:icon="#drawable/launcher_gallery"
android:label="#string/string_app_name"
android:launchMode="singleTop" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="text/*" />
<data android:mimeType="application/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="text/*" />
<data android:mimeType="application/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity-alias
android:name="com.android.internal.app.ResolverActivity"
android:exported="true"
android:targetActivity=".ActivityMainLauncher" />
<activity
android:name=".gallery.ActivityGallery"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:configChanges="orientation|keyboardHidden"
android:icon="#drawable/launcher_gallery"
android:label="#string/string_app_name_gallery"
android:launchMode="singleTop"
android:taskAffinity="com.carlsberg.dumbo.GalleryActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ActivityQuickLauncher"
android:configChanges="keyboardHidden|orientation"
android:icon="#drawable/launcher_gallery"
android:label="#string/string_app_name_quick_launcher"
android:launchMode="singleTop" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="text/*" />
<data android:mimeType="application/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="text/*" />
<data android:mimeType="application/*" />
</intent-filter>
</activity>
<activity
android:name=".send.ActivitySend"
android:configChanges="orientation|keyboardHidden"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".ActivityRemoveFriend"
android:configChanges="keyboardHidden|orientation"
android:label="#string/string_app_name"
android:theme="#android:style/Theme.Dialog" >
</activity>
<activity
android:name="com.carlsberg.dumbo.history.TabActivityHistoryLauncher"
android:label="#string/string_app_name"
android:launchMode="singleTask" >
</activity>
<activity android:name="com.carlsberg.dumbo.history.ActivityTabGroup1" >
</activity>
<activity android:name="com.carlsberg.dumbo.history.ActivityTabGroup2" >
</activity>
<activity android:name="com.carlsberg.dumbo.history.ActivityHistoryOutgoing" >
</activity>
<activity android:name="com.carlsberg.dumbo.history.ActivityHistoryIncoming" >
</activity>
<activity
android:name=".ActivityLogin"
android:configChanges="keyboardHidden|orientation"
android:label="#string/string_app_name"
android:theme="#android:style/Theme.Dialog" >
</activity>
<activity
android:name=".ActivityAddFriend"
android:configChanges="keyboardHidden|orientation"
android:label="#string/string_app_name"
android:theme="#android:style/Theme.Dialog" >
</activity>
<activity
android:name=".ActivityAcceptFriend"
android:configChanges="keyboardHidden|orientation"
android:label="#string/string_app_name"
android:theme="#android:style/Theme.Dialog" >
</activity>
<activity android:name=".Preferences" >
</activity>
<activity
android:name=".send.TabActivityActivityHelpSend"
android:launchMode="singleTask"
android:screenOrientation="portrait" >
</activity>
<service
android:name=".IntentServiceSendFiles"
android:label="#string/string_sendFileService" >
</service>
<service
android:name=".IntentServiceGetFilesFromPc"
android:label="#string/string_getFileService" >
</service>
<service
android:name=".IntentServiceGetFiles"
android:label="#string/string_getFileService" >
</service>
<service
android:name=".ServiceBootCompleated"
android:label="#string/string_batchtester" >
</service>
<service
android:name=".IntentServiceGetFriendList"
android:label="#string/string_listupdater" >
</service>
<service
android:name=".IntentServiceUpdateFriendList"
android:label="#string/string_listupdater" >
</service>
<service android:name=".C2DMReceiver" />
<receiver
android:name="com.google.android.c2dm.C2DMBroadcastReceiver"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<!-- Receive the actual message -->
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.carlsberg.dumbo" />
</intent-filter>
<intent-filter>
<!-- Receive the registration id -->
<action android:name="com.google.android.c2dm.intent.REGISTRATION" />
<category android:name="com.carlsberg.dumbo" />
</intent-filter>
</receiver>
<receiver android:name="com.google.android.c2dm.C2DMBroadcastReceiver" >
<!-- Handle retry events -->
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RETRY" />
<category android:name="com.carlsberg.dumbo" />
</intent-filter>
</receiver>
<receiver android:name=".AlarmReceiver" >
</receiver>
<receiver android:name=".myBroadcastReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<provider
android:name=".contentprovider.UserContentProvider"
android:authorities="com.carlsberg.dumbo.contentprovider" >
</provider>
</application>
I just copied the relevant part of your manifest and created a test project:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="#string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ActivityMainLauncher"
android:configChanges="keyboardHidden|orientation"
android:icon="#drawable/ic_launcher"
android:label="#string/string_app_name"
android:launchMode="singleTop" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="text/*" />
<data android:mimeType="application/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="text/*" />
<data android:mimeType="application/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ActivityQuickLauncher"
android:configChanges="keyboardHidden|orientation"
android:icon="#drawable/ic_launcher"
android:label="#string/string_app_name_quick_launcher"
android:launchMode="singleTop" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="text/*" />
<data android:mimeType="application/*" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:mimeType="audio/*" />
<data android:mimeType="text/*" />
<data android:mimeType="application/*" />
</intent-filter>
</activity>
</application>
</manifest>
Simple activity implementations:
public class ActivityQuickLauncher extends Activity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(this, getClass().getName(), Toast.LENGTH_LONG).show();
}
}
public class ActivityMainLauncher extends Activity {
#Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Toast.makeText(this, getClass().getName(), Toast.LENGTH_LONG).show();
}
}
And it works:
Android 4.1.1 (Galaxy Nexus) and Android 4.0.3 (Archos G9 A70).