Android BroadcastReceiver用于通过操作\u发送处理文件?

Android BroadcastReceiver用于通过操作\u发送处理文件?,android,android-intent,android-activity,broadcastreceiver,Android,Android Intent,Android Activity,Broadcastreceiver,在Android中是否可以创建BroadcastReceiver来处理其他应用程序共享的文件 我在清单中写道: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <receiver android:name=".

在Android中是否可以创建BroadcastReceiver来处理其他应用程序共享的文件

我在清单中写道:

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

<receiver android:name=".modules.file.FileReceiver" >

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

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

            <data android:mimeType="application/pdf" />
        </intent-filter>
    </receiver>
}

但我无法将文件从文件管理器发送到我的应用程序,因为我的应用程序不在可处理文件的应用程序列表中。。。 是否真的可以只在活动中处理文件???
有什么建议吗?

您几乎答对了,但是为了从其他应用程序接收文件,您需要创建
活动
而不是
类似于代码中的)来处理这些文件。
还需要更改如下语法:

<activity android:name=".MyActivity" >
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="pdf/*" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.SEND_MULTIPLE" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="pdf/*" />
    </intent-filter>
</activity>

您几乎答对了,但是为了从其他应用程序接收文件,您需要创建处理此文件的
活动
而不是
类似于代码中的)。
还需要更改如下语法:

<activity android:name=".MyActivity" >
    <intent-filter>
        <action android:name="android.intent.action.SEND" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="pdf/*" />
    </intent-filter>
    <intent-filter>
        <action android:name="android.intent.action.SEND_MULTIPLE" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="pdf/*" />
    </intent-filter>
</activity>

这将有助于在您的应用程序中获取数据,在我的代码中,我将从其他应用程序接收图像

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


 Intent intent1 = getIntent();
        String action = intent1.getAction();
        String type = intent1.getType();

        if (Intent.ACTION_SEND.equals(action) && type != null) {
            this.handleSend(intent1);
        }

    void handleSend(Intent intent) {
        try {
            Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
            imageShare.setImageURI(imageUri);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Intent intent1=getIntent();
String action=intent1.getAction();
字符串类型=intent1.getType();
if(Intent.ACTION_SEND.equals(ACTION)&&type!=null){
本手册第1部分:;
}
无效手柄端(意图){
试一试{
Uri imageUri=(Uri)intent.getParcelableExtra(intent.EXTRA_流);
setImageURI(imageUri);
}捕获(例外e){
e、 printStackTrace();
}
}

这将有助于在您的应用程序中获取数据,在我的代码中,我将从其他应用程序接收图像

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


 Intent intent1 = getIntent();
        String action = intent1.getAction();
        String type = intent1.getType();

        if (Intent.ACTION_SEND.equals(action) && type != null) {
            this.handleSend(intent1);
        }

    void handleSend(Intent intent) {
        try {
            Uri imageUri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
            imageShare.setImageURI(imageUri);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

Intent intent1=getIntent();
String action=intent1.getAction();
字符串类型=intent1.getType();
if(Intent.ACTION_SEND.equals(ACTION)&&type!=null){
本手册第1部分:;
}
无效手柄端(意图){
试一试{
Uri imageUri=(Uri)intent.getParcelableExtra(intent.EXTRA_流);
setImageURI(imageUri);
}捕获(例外e){
e、 printStackTrace();
}
}

是的,我刚刚通过运行IntentService进行文件解析和复制的activity创建了它,并且只将intent中的真实文件路径发送到目标activity。p、 s.:send and send_多个类别可以保留在一个intent filter标记中)是的,我刚刚通过运行IntentService进行文件解析和复制的activity创建了它,并且只将intent中的真实文件路径发送到目标activity。p、 s.:发送和发送(多个类别可以保留在一个意向过滤器标签中)