如何知道您的应用程序是否由其他应用程序的Intent启动

时间:2015-03-18 14:13:14

标签: android android-intent

我正在从其他应用成功启动我的应用,但我无法找到我的应用从其他应用启动或仅通过Android应用启动器启动的实例天气。

我正在使用此代码

    Intent intent = getIntent(); 
    if (intent!=null && intent.getType()!=null)  //check if any application has executed your app
    {
         if(intent.getType().indexOf("image/") != -1) 
           isinint=true; 
    }

控件根本不会进入外部if。我尝试调试intent变量,intent.getType()null,这就是控件没有进入内部的原因。

帮助!!

2 个答案:

答案 0 :(得分:1)

如果您在AndroidManifest.xml中定义了MainActivity,如下所示:

<activity   android:name="MainActivity"
            android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

您只需查看Intent类别即可。如果其中一个类别等于android.intent.category.LAUNCHER的应用程序已经从启动器中盯着,否则它就没有了。

if (intent != null && intent.hasCategory("android.intent.category.LAUNCHER")) {
   //started from lanucher
} 

答案 1 :(得分:0)

仅使用intent.getType()

  Intent intent = getIntent();
            if (intent.getType() != null) {
                if (intent.getType().contains("image/")) {
                  // Started from other apps
            }