1. 通过显式意图跳转到第三方软件

  软件包名的抓取:在adb shell中输入:

1 logcat | grep cmp

 

2. SkipToBrowserAcitvity

  同时需要在Manifest中注册

 1 package com.example.activitydemo;
 2 
 3 import android.app.Activity;
 4 import android.content.ComponentName;
 5 import android.content.Intent;
 6 import android.os.Bundle;
 7 import android.util.Log;
 8 import android.view.View;
 9 
10 import androidx.annotation.Nullable;
11 
12 public class SkipToBrowserActivity extends Activity {
13 
14     private static final String TAG = "SkipToBrowserActivity";
15 
16     @Override
17     protected void onCreate(@Nullable Bundle savedInstanceState) {
18         super.onCreate(savedInstanceState);
19         setContentView(R.layout.activity_skiptobrowser);
20     }
21 
22     /**
23      * 在按钮被点击时执行该方法,跳转到浏览器中
24      * cmp(componentName)=com.android.chrome/com.google.android.apps.chrome.Main
25      * cmp就是"包名/类的全路径名称(类所用的包名+类名)",如果类所用的包名与/前的包名一致,则可以用.来代替类所用的包名
26      * 用显式意图跳转第三方软件的缺点在于,若以后软件的包名和类名发生更改,那么就无法跳转
27      * @param view 点击的button
28      */
29     public void SkipToBrowser(View view){
30         Log.d(TAG, "SkipToBrowser");
31 
32         Intent intent = new Intent();
33         // 第一种写法:
34 //        intent.setClassName("com.android.chrome", "com.google.android.apps.chrome.Main");
35         // 第二种写法:
36         ComponentName componentName = new ComponentName("com.android.chrome", "com.google.android.apps.chrome.Main");
37         intent.setComponent(componentName);
38         startActivity(intent);
39     }
40 }

 

posted on 2021-09-22 10:57  EndlessShw  阅读(73)  评论(0)    收藏  举报