zoukankan      html  css  js  c++  java
  • 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);
            }
    
    }                                                                                                                                                                                                                                                                                                 
  • 相关阅读:
    数据挖掘实践(23):实战-- 建筑能源得分预测报告(一)
    返回闭包
    函数指针
    Rust 中的 Closure
    Moves, copies and clones in Rust
    Rust的闭包类型(Fn, FnMut, FnOne的区别)
    Clone VS Copy
    rust socket
    A simple UNIX socket listener in Rust
    【firecracker】系统启动与epoll事件循环
  • 原文地址:https://www.cnblogs.com/yeyueweiliang/p/12274197.html
Copyright © 2011-2022 走看看