如何在Android中的Activity啟動第三方應用程序?


如何在點擊某個按鍵后,執行啟動第三方應用程序界面?

/**
     * <功能描述> 啟動應用程序
     * 
     * @return void [返回類型說明]
     */
    private void startUpApplication(String pkg) {
        PackageManager packageManager = mContext.getPackageManager();
        PackageInfo packageInfo = null;
        try {
            // 獲取指定包名的應用程序的PackageInfo實例
              packageInfo = packageManager.getPackageInfo(pkg, 0);
        } catch (NameNotFoundException e) {
            // 未找到指定包名的應用程序
              e.printStackTrace();
            // 提示沒有GPS Test Plus應用
              Toast.makeText(mSptActivity,
                    mSptActivity.getString(R.string.gps_no_test_plus),
                    Toast.LENGTH_SHORT).show();
            return;
        }
        if (packageInfo != null) {
            // 已安裝應用
              Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null);
            resolveIntent.addCategory(Intent.CATEGORY_LAUNCHER);
            resolveIntent.setPackage(packageInfo.packageName);
            List<ResolveInfo> apps = packageManager.queryIntentActivities(
                    resolveIntent, 0);
            ResolveInfo ri = null;
            try {
                ri = apps.iterator().next();
            } catch (Exception e) {
                e.printStackTrace();
                return;
            }
            if (ri != null) {
                // 獲取應用程序對應的啟動Activity類名
                  String className = ri.activityInfo.name;
                // 啟動應用程序對應的Activity
                Intent intent = new Intent(Intent.ACTION_MAIN);
                intent.addCategory(Intent.CATEGORY_LAUNCHER);
                ComponentName componentName = new ComponentName(pkg, className);
                intent.setComponent(componentName);
                mContext.startActivity(intent);
            }
        }
    }

想要打開指定包名的應用時,提供包名即可:

// Gps Test Plus應用程序包名
startUpApplication("com.chartcross.gpstestplus");

上述的字符串:com.chartcross.gpstestplus即是Google提供的GPS Test Plus應用的包名。

 

疑問:

1. 現實情況是:可能在第一次刷機后,無法啟動應用。如何解決此問題?

2. 留給未來…


免責聲明!

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



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