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);                                                                                                                                       
   }                                                                                                                                                                

 

 

 

 

 

 

 

 

 

 點擊按鈕

 

 

 

 

 

 實現跳轉

二、隱式意圖來跳轉到第三方應用

 /**                                                               
  * 下面通過隱式意圖來跳轉到第三方應用                                              
  * 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_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);
        }

}                                                                                                                                                                                                                                                                                                 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM