step1:
package com.example.myapplicationimport android.content.pm.PackageManager.GET_UNINSTALLED_PACKAGESimport androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.util.Logclass MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) showPackageInDevice() } private fun showPackageInDevice() { this.packageManager.getInstalledPackages(GET_UNINSTALLED_PACKAGES) .forEach { Log.i( "APP", it.packageName + "\t" + it.versionName + "\t" + it.applicationInfo.name + "\t" + it.applicationInfo.packageName ) } }}
step2:
package com.example.myapplication;import android.content.ComponentName;import android.content.Intent;import android.content.pm.PackageInfo;import android.content.pm.PackageManager;import android.content.pm.ResolveInfo;import android.os.Bundle;import android.view.View;import android.widget.Button;import androidx.annotation.Nullable;import androidx.appcompat.app.AppCompatActivity;import java.util.List;public class TextActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn_tip_calculator = findViewById(R.id.btn); btn_tip_calculator.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { RunApp("com.tencent.qqmusic"); } }); } private void RunApp(String packageName) { PackageInfo pi; try { pi = getPackageManager().getPackageInfo(packageName, 0); Intent resolveIntent = new Intent(Intent.ACTION_MAIN, null); resolveIntent.setPackage(pi.packageName); PackageManager pManager = getPackageManager(); List<ResolveInfo> apps = pManager.queryIntentActivities( resolveIntent, 0); ResolveInfo ri = apps.iterator().next(); if (ri != null) { packageName = ri.activityInfo.packageName; String className = ri.activityInfo.name; Intent intent = new Intent(Intent.ACTION_MAIN); ComponentName cn = new ComponentName(packageName, className); intent.setComponent(cn); startActivity(intent); } } catch (PackageManager.NameNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } }}
end