如何将我的应用EDpro添加至其他应用的分享面板选项中?
实现应用加入系统分享列表(显示“Edit with EDpro”)
要让你的应用出现在其他App的分享选项中,核心是在AndroidManifest里配置对应的Intent过滤器,再处理分享内容,具体步骤如下:
1. 配置AndroidManifest.xml中的Activity
在负责处理编辑的Activity中添加<intent-filter>,声明应用支持的分享动作、目标类别和数据类型:
<activity android:name=".YourEditActivity"> <intent-filter android:label="@string/share_edit_label"> <!-- 支持单文件分享 --> <action android:name="android.intent.action.SEND" /> <!-- 可选:支持多文件分享 --> <action android:name="android.intent.action.SEND_MULTIPLE" /> <!-- 必须的类别,标记为可被系统分享调用的目标 --> <category android:name="android.intent.category.DEFAULT" /> <!-- 指定应用支持的MIME类型,根据需求调整,比如视频、图片 --> <data android:mimeType="video/*" /> <data android:mimeType="image/*" /> </intent-filter> </activity>
2. 设置分享选项的显示文本
在res/values/strings.xml中添加自定义标签,对应“Edit with EDpro”:
<string name="share_edit_label">Edit with EDpro</string>
这个标签会通过上面<intent-filter>的android:label属性,在分享列表中显示出来。
3. 在Activity中处理分享内容
在YourEditActivity里获取分享过来的文件Uri,执行编辑逻辑:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit); Intent receivedIntent = getIntent(); String action = receivedIntent.getAction(); String mimeType = receivedIntent.getType(); // 处理单文件分享 if (Intent.ACTION_SEND.equals(action) && mimeType != null) { if (mimeType.startsWith("image/")) { Uri imageUri = receivedIntent.getParcelableExtra(Intent.EXTRA_STREAM); // 编写图片编辑相关逻辑 } else if (mimeType.startsWith("video/")) { Uri videoUri = receivedIntent.getParcelableExtra(Intent.EXTRA_STREAM); // 编写视频编辑相关逻辑 } } // 处理多文件分享(可选) else if (Intent.ACTION_SEND_MULTIPLE.equals(action) && mimeType != null) { ArrayList<Uri> fileUris = receivedIntent.getParcelableArrayListExtra(Intent.EXTRA_STREAM); // 编写多文件编辑相关逻辑 } }
内容的提问来源于stack exchange,提问作者Dipon
相关产品推荐
相关产品推荐

