Activity组件(二):通过显式意图和隐式意图来跳转至第三方应用

一、显式意图来跳转到第三方应用

   /**                                                                                                                                                              
    * 这个方法会在点击按钮的时候执行                                                                                                                                               
    * @param view                                                                                                                                                   
    */                                                                                                                                                              
                                                                                                                                                                    
   public void skip2Browser(View view){                                                                                                                             
                                                                                                                                                                    
       Log.d(TAG,"skp2Browser");                                                                                                                                    
       Intent intent =new Intent();                                                                                                                                 
       /**                                                                                                                                                          
        * 組件的名称,也就是ComponentName =包名/类的路径名称,如包名一直,类的路径名称可以省略包名                                                                                                      
        * 如:com.google.android.as/com.google.android.apps.miphone.aiai.app.AiAiPredictionService                                                                    
        */                                                                                                                                                          
       //第一种写法                                                                                                                                                      
       // intent.setClassName("com.google.android.as","com.google.android.apps.miphone.aiai.app.AiAiPredictionService");                                            
                                                                                                                                                                    
        //第二种写法                                                                                                                                                     
       ComponentName  componentName=new ComponentName("com.google.android.as","com.google.android.apps.miphone.aiai.app.AiAiPredictionService");                    
       intent.setComponent(componentName);                                                                                                                          
                                                                                                                                                                    
       startActivity(intent);                                                                                                                                       
   }                                                                                                                                                                

 

 

 

 

 

 

 

Activity组件(二):通过显式意图和隐式意图来跳转至第三方应用_第1张图片

 

 

 点击按钮

 

 

 

Activity组件(二):通过显式意图和隐式意图来跳转至第三方应用_第2张图片

 

 

 实现跳转

二、隐式意图来跳转到第三方应用

 /**                                                               
  * 下面通过隐式意图来跳转到第三方应用                                              
  * 1、创建Intent对象                                                   
  * 2、第二步给intent对象,设置Action、category,5.1以上要设置包名                    
  * 3、startActivity(intent)                                        
  * @param view                                                    
  */                                                               
     public void skip2BrowserInvisible(View view) {                
         Intent intent =new Intent();                              
         intent.setAction("android.intent.action.SEARCH");         
         intent.addCategory("android.intent.category.DEFAULT");    
         intent.setPackage("com.google.android.as");               
         startActivity(intent);                                    
     }                                                             

 

 

Activity组件(二):通过显式意图和隐式意图来跳转至第三方应用_第3张图片

 

 

Activity组件(二):通过显式意图和隐式意图来跳转至第三方应用_第4张图片

 

 

activity_skip2browser.xml

xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:layout_height="match_parent">

    <Button
        android:layout_width="match_parent"
        android:text="跳转到浏览器(显式)"
        android:onClick="skip2BrowserVisible"
        android:layout_centerInParent="true"
        android:layout_height="wrap_content">

    Button>
    <Button
        android:layout_width="match_parent"
        android:text="跳转到浏览器(隐式)"
        android:onClick="skip2BrowserInvisible"
        android:layout_centerInParent="true"
        android:layout_height="wrap_content">

    Button>
LinearLayout>

 

Skip2BrowserActivity.java

package com.example.activitydemo;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;

import androidx.annotation.Nullable;

public class Skip2BrowserActivity extends Activity {


    private static final String TAG = "Skip2BrowserActivity";

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_skip2browser);
    }

    /**
     * 这个方法会在点击按钮的时候执行
     * @param view
     */

    public void skip2BrowserVisible(View view){

        Log.d(TAG,"skp2Browser");
        Intent intent =new Intent();
        /**
         * 組件的名称,也就是ComponentName =包名/类的路径名称,如包名一直,类的路径名称可以省略包名
         * 如:com.google.android.as/com.google.android.apps.miphone.aiai.app.AiAiPredictionService
         */
        //第一种写法
        // intent.setClassName("com.google.android.as","com.google.android.apps.miphone.aiai.app.AiAiPredictionService");

         //第二种写法
        ComponentName  componentName=new ComponentName("com.google.android.as","com.google.android.apps.miphone.aiai.app.AiAiPredictionService");
        intent.setComponent(componentName);

        startActivity(intent);
    }

    /**
     * 下面通过隐式意图来跳转到第三方应用
     * 1、创建Intent对象
     * 2、第二步给intent对象,设置Action、category,5.1以上要设置包名
     * 3、startActivity(intent)
     * @param view
     */
        public void skip2BrowserInvisible(View view) {
            Intent intent =new Intent();
            intent.setAction("android.intent.action.SEARCH");
            intent.addCategory("android.intent.category.DEFAULT");
            intent.setPackage("com.google.android.as");
            startActivity(intent);
        }

}                                                                                                                                                                                                                                                                                                 

 

你可能感兴趣的:(Activity组件(二):通过显式意图和隐式意图来跳转至第三方应用)