代码之家  ›  专栏  ›  技术社区  ›  Student

如何从其他应用程序启动我的应用程序?

  •  0
  • Student  · 技术社区  · 16 年前

    如何从其他应用程序启动我的应用程序(它们不会打包在一起)

    --更新

    第二个应用的清单:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.example.helloandroid"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".HelloAndroid"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                    <category android:name="android.intent.category.HOME"/>
                    <category android:name="android.intent.category.DEFAULT"/>
                </intent-filter>
            </activity>
    
            <activity android:name=".HelloAndroid">
                <intent-filter>
                    <action android:name="com.example.helloandroid.HelloAndroid" />
                </intent-filter>
            </activity>
    
        </application>
    
    
    </manifest>
    

    我称之为:

    startActivity(new Intent("com.example.helloandroid.HelloAndroid"));
    

    它抛出:

    07-16 15:11:01.455: ERROR/Desktop(610): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.example.helloandroid.HelloAndroid }
    

    相关:
    How to launch android applications from another application

    2 回复  |  直到 9 年前
        1
  •  4
  •   Cristian    16 年前

    在第一个应用程序中,您必须修改 AndroidManifest.xml . 具体来说,您将添加一个自定义 action 进入 intent-filter 要从中启动的活动的名称 在某处 :

    <activity android:name="FirstApp">
      <intent-filter>
        <action android:name="com.example.foo.bar.YOUR_ACTION" />
      </intent-filter>
    </activity>
    

    然后,在第二个应用程序中,使用该操作启动活动:

    startActivity(new Intent("com.example.foo.bar.YOUR_ACTION"));
    

    如果我更改默认名称“android.intent.action.MAIN”,我将无法在虚拟设备中从Eclipse运行应用程序

    <activity android:name="FirstApp">
      <intent-filter>
        <action android:name="com.example.foo.bar.YOUR_ACTION" />
        <action android:name="android.intent.action.MAIN" />
      </intent-filter>
    </activity>
    
        2
  •  1
  •   Community Mohan Dere    9 年前

    这个问题似乎和我之前回答的问题相似 today .

    Intent intent = new Intent("android.intent.action.MAIN");
    intent.setComponent(new ComponentName( "PACKAGE NAME", "CLASS" ));
    startActivity(intent);