【问题标题】:how to add myApp to complete action using?如何添加 myApp 以使用完成操作?
【发布时间】:2021-06-25 23:24:53
【问题描述】:

当您单击视频时,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>

请指导我如何处理活动中的意图

【问题讨论】:

    标签: java android android-manifest intentfilter


    【解决方案1】:

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

        <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>
    

    每当用户从手机中选择视频文件时,它都会将您的应用显示到建议列表中。不过,您需要处理视频播放器活动中的进一步操作。

    因为此标签只会帮助您进入建议列表,要播放选定的视频,您必须使用意图来获取选定的视频 uri。您可以在互联网上轻松找到播放此类视频文件的示例。

    【讨论】:

      【解决方案2】:

      我知道有两种方法可以实现这种目标。

      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;
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2016-01-08
        • 2016-09-16
        • 2010-12-24
        • 2019-02-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-06-30
        • 2015-05-31
        相关资源
        最近更新 更多