如何添加 myApp 以完成使用的操作?

how to add myApp to complete action using?

当你点击视频时 android 给你一些建议应用程序打开我想将我的应用程序添加到列表中的视频。列表的名称是使用的完整操作并且此文档是相关的 https://developer.android.com/training/basics/intents/filters.html 但我是初学者,不知道如何使用文档制作视频

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

请指导我如何处理 activity

中的意图

我知道有两种方法可以实现这种事情。

BroadcastReceiver

  • Manifest.xml
<application
...
    <!-- BROADCAST RECEIVER -->
    <receiver
        android:name="com.package.app.Broadcaster"
        android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.SEND"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:mimeType="text/plain"/>
                <data android:mimeType="image/*"/>
            </intent-filter>
    </receiver>

    <activity
    ...
    </activity>
...
</application>
  • com.package.app.Broadcaster
public final class Broadcaster extends BroadcastReceiver
{
    @Override
    public final void onReceive(final Context context, final Intent intent) {
        //Activity to handle the files.
        intent.setClass(context, MainActivity.class);
        //RuntimeException without this flag.
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(intent);
    }
}

Service

  • Manifest.xml
<application
...
    <!-- SERVICE -->
    <service
        android:enabled="true"
        android:name="com.package.app.Servicer"
        android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.SEND"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:mimeType="text/plain"/>
                <data android:mimeType="image/*"/>
            </intent-filter>
    </service>

    <activity
    ...
    </activity>
...
</application>
  • com.package.app.Servicer
public final class Servicer extends Service
{
    @Override
    public final int onStartCommand(final Intent intent, final int flags, final int startId) {
        //Activity to handle the files
        intent.setClass(this, MainActivity.class);
        //RuntimeException without this flag.
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
        //Stop this service.
        stopSelfResult(startId);
        return super.onStartCommand(intent, flags, startId);
    }

    @Override
    public final IBinder onBind(final Intent intent) {
        return null;
    }
}

将此代码放入您的 activity 标签中的清单中:

    <intent-filter tools:ignore="AppLinkUrlError">
        <action android:name="android.intent.action.VIEW" />

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

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

每当用户从他的 phone 中选择视频文件时,它就会将您的应用显示在建议列表中。不过,您需要处理视频播放器中的进一步操作 activity。

因为此标签只会帮助您进入建议列表,要播放选定的视频,您必须使用 intent 来获取选定的视频 uri。这样的播放视频文件的例子在网上很容易找到。