隐含的意图

时间:2012-09-14 11:59:48

标签: android-intent

我是android新手。我从

中读到了隐含意图

http://saigeethamn.blogspot.in/2009/08/android-developer-tutorial-for_26.html

现在我的问题是我可以通过隐式意图调用我的另一个应用程序,作为其中一个活动吗?

2 个答案:

答案 0 :(得分:2)

是的,你可以。例如,当您想要从一个应用程序共享另一个应用程序时, 你必须在第二个应用程序中注册,该应用程序在第二个应用程序的清单文件中接收意图。附加的意图过滤器在

下面
   <activity
        android:name=".Main"
          android:label="@string/app_name" android:screenOrientation="portrait"
         android:theme="@android:style/Theme.Black.NoTitleBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        **<intent-filter>
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
        <data android:mimeType="image/*" />
        **
    </activity>        

然后onCreate第二个应用已经具有图像视图的视图

ImageView im = (ImageView) findViewById(R.id.image);
im.setImageURI((Uri) getIntent().getExtras.get(Intent.EXTRA_STREAM));

这意味着当你在清单文件中声明意图过滤器时,每当有人分享图片时,你的第二个应用程序就会出现在可用列表中

答案 1 :(得分:0)

是的,你可以做到。

隐式意图不命名特定组件,而是声明要执行的常规操作,这允许来自另一个应用程序的组件处理它。例如,如果要向用户显示地图上的位置,则可以使用隐式意图请求另一个有能力的应用在地图上显示指定位置。

您的活动向ActivityManager(操作系统的一部分)发送请求,然后ActivityManager从另一个应用程序请求活动,然后响应从被调用的应用程序发送到您调用应用程序。