Android调用第三方app(Scheme隐式以及显示调用)

一、隐式调用

1.第三方app:manifest中配置能接受Scheme方式启动的

<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data
            android:host="test"
            android:scheme="app"
/>
    </intent-filter>
</activity>

 

2. 自己app调用

 Uri uri=Uri.parse("app://test");   //   app://test" 相当于 http://www.baidu.com
 Intent intent=new Intent(Intent.ACTION_VIEW,uri);
 startActivity(intent);

二、显示调用

1.第三方app:manifest中设置exported = ‘true’

<activity android:name=".WelcomeActivity"
    android:exported="true"
>
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>

</activity>

 

3. 自己app调用

 Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
//前提:知道要跳转应用的包名、类名
String packageName = "com.wpl.csdemo";
String className = "com.wpl.csdemo.WelcomeActivity";
ComponentName componentName = new ComponentName(packageName, className);
intent.setComponent(componentName);
startActivity(intent);

 

 

 

 

注意:这两种方式的设置只是针对某个页面,都只是在自己应用中跳转第三方应用,并不是真正的唤醒,比如应用A已经在后台存在了,应用B调用以上两种方式后,只是在应用B中重新打开了一个应用A,此时的应用A是相当与存在两个,一个是在后台单独存在,一个是依存应用B存在,是添加到应用B的栈中的。

 

真正意义的唤醒app,实现ios scheme相同效果:https://blog.csdn.net/Silence_Sep/article/details/80527472

 

 

 

 

 

 

 

 

展开阅读全文

没有更多推荐了,返回首页