这是方案
1)我从图库中打开一些图像,然后点击它显示的分享按钮 应用程序列表选择
2)当我从中选择我的申请时 如果我的应用程序不在,则列表始终从启动器活动打开 背景
3)当我选择facebook而不是我的应用程序时 像这样打开
4)当我看到后台runnig应用程序正在显示facebook 如下图像(Facebook应用程序未打开)的gallary应用程序
但是我的清单代码与我的应用程序不一样 以下
<activity
android:name=".ui.activities.SplashActivity"
android:label="@string/app_name"
android:launchMode="singleTop"
android:screenOrientation="sensorPortrait"
android:windowSoftInputMode="adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".ui.activities.MainActivity"
android:configChanges="orientation|keyboardHidden"
android:label="@string/app_name"
android:launchMode="singleTask"
android:screenOrientation="sensorPortrait"
android:windowSoftInputMode="adjustResize" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
答案 0 :(得分:0)
您的共享活动jus需要此意图过滤器。 从中删除操作主 - 如果您不想从启动器图标启动它
<intent-filter>
<action android:name="android.intent.action.MAIN" />
</intent-filter>
您需要使用以下意图过滤器才能使活动能够共享/发送图像
<activity
android:name=".ShareActivity"
android:label="@string/title_activity_share" >
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="image/*" />
</intent-filter>
</activity>
然后处理共享功能的活动应该处理数据
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_share);
// Get intent, action and MIME type
Intent intent = getIntent();
String action = intent.getAction();
String type = intent.getType();
if (Intent.ACTION_SEND.equals(action) && type != null) {
if (type.startsWith("image/")) {
Toast.makeText(ShareActivity.this,"share",Toast.LENGTH_LONG).show(); // Handle single image being sent
}
}
}