0

我正在尝试将图库中的图像列表共享到我的应用程序中,以使用它的回收站视图或其他任何东西

<activity
    android:icon="@mipmap/ic_launcher"
    android:name=".MainActivity"
    >
    <intent-filter>


    <category android:name="android.intent.category.LAUNCHER" />

    <action android:name="android.intent.action.MAIN" />
    <action android:name="android.intent.action.SEND" />

    <category android:name="android.intent.category.DEFAULT" />
        <action android:name="android.intent.action.SEND"/>
        <data android:mimeType="*/*"/>


    </intent-filter>
</activity>
4

1 回答 1

0

这样可行:-

1-在清单上指定这些行

  <activity
        android:icon="@mipmap/ic_launcher"
        android:name=".MainActivity"
        >
        <intent-filter>


        <category android:name="android.intent.category.LAUNCHER" />

        <action android:name="android.intent.action.MAIN" />
        <action android:name="android.intent.action.SEND" />

        <category android:name="android.intent.category.DEFAULT" />
            <action android:name="android.intent.action.SEND_MULTIPLE"/>
            <data android:mimeType="*/*"/>
        <data android:mimeType="image/jpeg" />
        <data android:mimeType="image/png" />
        <data android:mimeType="image/jpg" />

        </intent-filter>
    </activity>

2-Second 获取打开您的意图的操作并检查它是否是我们为活动注册的操作,然后将数据作为 Uri 的 ArrayList 接收

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent intent = getIntent();
    if (Intent.ACTION_SEND_MULTIPLE.equals(intent.getAction())) {
        Bundle extras = intent.getExtras();
        if (extras.containsKey(Intent.EXTRA_STREAM)) {
            ArrayList<Uri> urisArrayList = extras.getParcelableArrayList(Intent.EXTRA_STREAM);
            urisArrayList.forEach(i-> Log.d(TAG, "onCreate: "+i.toString()));
        }
    }}
于 2021-07-18T03:16:11.150 回答