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 }
浙公网安备 33010602011771号