从其他应用程序接收数据在android中为空

Raj*_*Raj 6 android android-intent android-activity

我想让我的应用程序像Instagram我可以直接从我的应用程序共享图片,如果我从库中选择任何图像和点击共享我的应用程序显示在选择器列表上

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />


<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.SEND" />

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

                    <data android:mimeType="*/*" />
                </intent-filter>

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

                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

从意图接收数据的代码是

private void initActivityState() {
        if (getIntent() != null){
            runShareActivityIntent();
        }
}
public void runShareActivityIntent(){
        Intent passIntent=getIntent();
        String action = passIntent.getAction();
        String type = passIntent.getType();

        if (Intent.ACTION_SEND.equals(action) && type != null) {
            Uri imageUri = (Uri) passIntent.getParcelableExtra(Intent.EXTRA_STREAM);    
            Intent intentcall = new Intent(this, MainActivity.class);
            intentcall.putExtra(KEY_TYPE,type);
            intentcall.putExtra(KEY_VALUE,imageUri.toString());
            startActivity(intentcall);
            finish();
        }

    }
Run Code Online (Sandbox Code Playgroud)

现在在我的情况下,当我的应用程序在后台我能够得到

String type = passIntent.getType();
Run Code Online (Sandbox Code Playgroud)

并且我能够获得图像uri但是当我的应用程序没有运行(杀死应用程序)并且我从选择器中选择我的应用程序时我得到类型为null

Ven*_*ini 0

尝试向清单文件添加权限:

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Run Code Online (Sandbox Code Playgroud)