android.content.pm.PackageManager#getLaunchIntentForPackage()源码实例Demo

下面列出了android.content.pm.PackageManager#getLaunchIntentForPackage() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: PinyinSearchLibrary   文件: AppUtil.java
/**
 * Return true when start app success,otherwise return false.
 * @param context
 * @param packageName
 * @return
 */
public static boolean startApp(Context context,String packageName){
	boolean startAppSuccess=false;
	do{
		if((null==context)||TextUtils.isEmpty(packageName)){
			break;
		}
		
		PackageManager pm=context.getPackageManager();
		Intent intent=pm.getLaunchIntentForPackage(packageName);
		
		if(null!=intent){
			context.startActivity(intent);
			startAppSuccess=true;
		}
	}while(false);
	
	
	return startAppSuccess;
}
 
源代码2 项目: Hangar   文件: Tools.java
protected static boolean isBlacklistedOrBad(String packageName, Context context, TasksDataSource db) {
    try {
        PackageManager pkgm = context.getPackageManager();
        Intent intent = pkgm.getLaunchIntentForPackage(packageName);
        if (intent == null)
            throw new PackageManager.NameNotFoundException();

    } catch (PackageManager.NameNotFoundException e) {
        return true;
    }
    for (String blTask : getBlacklisted(db)) {
        if (packageName.equals(blTask)) {
            return true;
        }
    }
    return false;
}
 
源代码3 项目: MBEStyle   文件: ApplyFragment.java
private void NextLauncher() {
    try {
        PackageManager manager = getActivity().getPackageManager();
        Intent intent = manager.getLaunchIntentForPackage("com.gtp.nextlauncher");

        if (intent == null) {
            intent = manager.getLaunchIntentForPackage("com.gtp.nextlauncher.trial");
        }

        Intent next = new Intent("com.gau.go.launcherex.MyThemes.mythemeaction");
        next.putExtra("type", 1);
        next.putExtra("pkgname", BuildConfig.APPLICATION_ID);
        getActivity().sendBroadcast(next);
        startActivity(intent);

    } catch (Exception e) {
        Toast.makeText(getActivity(), R.string.launcher_not_found, Toast.LENGTH_SHORT).show();
    }
}
 
源代码4 项目: DroidPlugin   文件: InstalledFragment.java
@Override
public void onListItemClick(ListView l, View v, int position, long id) {
    ApkItem item = adapter.getItem(position);
    if (v.getId() == R.id.button2) {

        PackageManager pm = getActivity().getPackageManager();
        Intent intent = pm.getLaunchIntentForPackage(item.packageInfo.packageName);
        if (intent != null) {
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            Log.i("DroidPlugin", "start " + item.packageInfo.packageName + "@" + intent);
            startActivity(intent);
        } else {
            Log.e("DroidPlugin", "pm " + pm.toString() + " no find intent " + item.packageInfo.packageName);
        }
    } else if (v.getId() == R.id.button3) {
        doUninstall(item);
    }
}
 
源代码5 项目: MyOwnNotes   文件: LoginActivity.java
private void openCloudApp(String packageName) {
    PackageManager manager = getPackageManager();
    try {
        Intent i = manager.getLaunchIntentForPackage(packageName);
        if (i == null) {
            throw new PackageManager.NameNotFoundException();
        }
        i.addCategory(Intent.CATEGORY_LAUNCHER);
        startActivity(i);
    } catch (PackageManager.NameNotFoundException e) {
        try {
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=" + packageName)));
        } catch (android.content.ActivityNotFoundException anfe) {
            startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("https://play.google.com/store/apps/details?id=" + packageName)));
        }
    }
}
 
源代码6 项目: letv   文件: a.java
private static Intent l(Context context, String str) {
    try {
        PackageManager packageManager = context.getPackageManager();
        if (packageManager.getPackageInfo(str, 256) != null) {
            return packageManager.getLaunchIntentForPackage(str);
        }
    } catch (NameNotFoundException e) {
    }
    return null;
}
 
源代码7 项目: android-testdpc   文件: SelectAppFragment.java
/**
 * @return a list of apps that users are allowed to select from.
 */
protected List<String> createAppList() {
    List<String> appList = new ArrayList<>();
    PackageManager pm = getActivity().getPackageManager();
    List<ApplicationInfo> allApps = pm.getInstalledApplications(0 /* No flag */);
    Collections.sort(allApps, new ApplicationInfo.DisplayNameComparator(pm));
    for(ApplicationInfo info : allApps) {
        if ((pm.getLaunchIntentForPackage(info.packageName)) != null) {
            appList.add(info.packageName);
        }
    }
    return appList;
}
 
@Override
public void onReceive(Context context, Intent intent) {
    switch (intent.getAction()) {
        case "prev":
            FlutterMediaNotificationPlugin.callEvent("prev");
            break;
        case "next":
            FlutterMediaNotificationPlugin.callEvent("next");
            break;
        case "toggle":
            String title = intent.getStringExtra("title");
            String author = intent.getStringExtra("author");
            boolean play = intent.getBooleanExtra("play",true);

            if(play)
                FlutterMediaNotificationPlugin.callEvent("play");
            else
                FlutterMediaNotificationPlugin.callEvent("pause");

            FlutterMediaNotificationPlugin.showNotification(title, author,play);
            break;
        case "select":
            Intent closeDialog = new Intent(Intent.ACTION_CLOSE_SYSTEM_DIALOGS);
            context.sendBroadcast(closeDialog);
            String packageName = context.getPackageName();
            PackageManager pm = context.getPackageManager();
            Intent launchIntent = pm.getLaunchIntentForPackage(packageName);
            context.startActivity(launchIntent);

            FlutterMediaNotificationPlugin.callEvent("select");
    }
}
 
源代码9 项目: Huochexing12306   文件: MyUtils.java
public static void startApp(Context context, String strPackageName, CharSequence csTipMsg) {
	PackageManager pm = context.getPackageManager();
	Intent intent = pm.getLaunchIntentForPackage(strPackageName);
	if (intent != null){
		context.startActivity(intent);
	}else if (!TextUtils.isEmpty(csTipMsg)){
		Toast.makeText(context, csTipMsg, Toast.LENGTH_SHORT).show();
	}
}
 
源代码10 项目: DoraemonKit   文件: SystemUtil.java
/**
 * 是否是系统main activity
 *
 * @return boolean
 */
public static boolean isMainLaunchActivity(Activity activity) {
    PackageManager packageManager = activity.getApplication().getPackageManager();
    Intent intent = packageManager.getLaunchIntentForPackage(activity.getPackageName());
    if (intent == null) {
        return false;
    }
    ComponentName launchComponentName = intent.getComponent();
    ComponentName componentName = activity.getComponentName();
    if (launchComponentName != null && componentName.toString().equals(launchComponentName.toString())) {
        return true;
    }
    return false;
}
 
源代码11 项目: letv   文件: PushActivity.java
private void c() {
    PackageManager packageManager = getPackageManager();
    String packageName = getApplicationContext().getPackageName();
    if (packageName.isEmpty()) {
        z.d(z[1], z[2]);
        return;
    }
    Intent launchIntentForPackage = packageManager.getLaunchIntentForPackage(packageName);
    if (launchIntentForPackage == null) {
        z.d(z[1], z[0]);
        return;
    }
    launchIntentForPackage.addFlags(335544320);
    startActivity(launchIntentForPackage);
}
 
源代码12 项目: things-notification   文件: NotificationModule.java
private String getDefaultSmsPackage() {
    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        return Telephony.Sms.getDefaultSmsPackage(reactContext);
    } else {
        String defApp = Settings.Secure.getString(reactContext.getContentResolver(), "sms_default_application");
        PackageManager pm = reactContext.getApplicationContext().getPackageManager();
        Intent iIntent = pm.getLaunchIntentForPackage(defApp);
        ResolveInfo mInfo = pm.resolveActivity(iIntent,0);
        return mInfo.activityInfo.packageName;
    }
}
 
源代码13 项目: HaoReader   文件: DonateActivity.java
private void openZfb() {
    try {
        PackageManager packageManager = this.getApplicationContext().getPackageManager();
        Intent intent = packageManager.getLaunchIntentForPackage("com.eg.android.AlipayGphone");
        startActivity(intent);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        ACache.get(this).put("getZfbHb", "True", 3 * ACache.TIME_DAY);
        RxBus.get().post(RxBusTag.GET_ZFB_Hb, true);
    }
}
 
/**
 * Receiving notification event
 * @param context current context
 * @param intent received intent
 */
@Override
public void onReceive(Context context, Intent intent) {

    // get notification info
    String message = intent.getStringExtra("MESSAGE");
    String title = intent.getStringExtra("TITLE");
    int requestCode = intent.getIntExtra("REQUEST_CODE", 0);

    // create intent for taping notification
    final PackageManager pm=context.getPackageManager();
    Intent intentCustom = pm.getLaunchIntentForPackage(context.getPackageName());

    PendingIntent contentIntent = PendingIntent.getActivity(context, 0, intentCustom,
            PendingIntent.FLAG_UPDATE_CURRENT);

    // create icon bitmap
    ApplicationInfo applicationInfo = null;
    try {
        applicationInfo = pm.getApplicationInfo(context.getPackageName(),PackageManager.GET_META_DATA);
    } catch (PackageManager.NameNotFoundException e) {
        e.printStackTrace();
        return;
    }
    final int appIconResId=applicationInfo.icon;
    Bitmap largeIcon = BitmapFactory.decodeResource(context.getResources(), appIconResId);

    NotificationManager manager = (NotificationManager) context.getSystemService(Service.NOTIFICATION_SERVICE);

    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
    {
        String channelId = "default";
        NotificationChannel channel = new NotificationChannel(channelId, "Default", NotificationManager.IMPORTANCE_DEFAULT);

        channel.setDescription("Default Notification");
        channel.enableVibration(true);
        channel.canShowBadge();
        channel.setLockscreenVisibility(Notification.VISIBILITY_PRIVATE);
        channel.setShowBadge(true);

        manager.createNotificationChannel(channel);

        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_ONE_SHOT);

        Notification notification = new Notification.Builder(context, channelId)
                .setContentTitle(title)
                .setContentText(message)
                .setAutoCancel(true)
                .setContentIntent(pendingIntent)
                .setSmallIcon(context.getResources().getIdentifier("notification_icon", "drawable", context.getPackageName()))
                .setLargeIcon(largeIcon)
                .build();

        manager.notify(requestCode, notification);
    } else {
        // create notification builder
        NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
        builder.setContentIntent(contentIntent);

        // set notification info
        builder.setTicker("");
        builder.setContentTitle(title);
        builder.setContentText(message);

        // set icon
        builder.setLargeIcon(largeIcon);
        builder.setSmallIcon(context.getResources().getIdentifier("notification_icon", "drawable", context.getPackageName()));

        // fire now
        builder.setWhen(System.currentTimeMillis());

        // set device notification settings
        builder.setDefaults(Notification.DEFAULT_SOUND
                | Notification.DEFAULT_VIBRATE
                | Notification.DEFAULT_LIGHTS);

        // tap to cancel
        builder.setAutoCancel(true);

        // fire notification
        manager.notify(requestCode, builder.build());
    }
}
 
源代码15 项目: Aria   文件: AndroidUtils.java
/**
 * 启动另外一个App
 */
public static void startOtherApp(Context context, String packageName) {
  PackageManager pm = context.getPackageManager();
  Intent launcherIntent = pm.getLaunchIntentForPackage(packageName);
  context.startActivity(launcherIntent);
}
 
源代码16 项目: unity-ads-android   文件: Intent.java
private static android.content.Intent intentFromMetadata(JSONObject json) throws IntentException {
	android.content.Intent intent;

	String className = (String)json.opt("className");
	String packageName = (String)json.opt("packageName");
	String action = (String)json.opt("action");
	String uri = (String)json.opt("uri");
	String mimeType = (String)json.opt("mimeType");
	JSONArray categories = (JSONArray)json.opt("categories");
	Integer flags = (Integer)json.opt("flags");
	JSONArray extras = (JSONArray)json.opt("extras");

	if (packageName != null && className == null && action == null && mimeType == null) {
		PackageManager pm = ClientProperties.getApplicationContext().getPackageManager();
		intent = pm.getLaunchIntentForPackage(packageName);

		if (intent != null && flags > -1) {
			intent.addFlags(flags);
		}
	}
	else {
		intent = new android.content.Intent();

		if (className != null && packageName != null)
			intent.setClassName(packageName, className);

		if (action != null)
			intent.setAction(action);

		if (uri != null)
			intent.setData(Uri.parse(uri));

		if (mimeType != null)
			intent.setType(mimeType);

		if (flags != null && flags > -1)
			intent.setFlags(flags);

		if (!setCategories(intent, categories))
		    throw new IntentException(IntentError.COULDNT_PARSE_CATEGORIES, categories);

		if (!setExtras(intent, extras))
			throw new IntentException(IntentError.COULDNT_PARSE_EXTRAS, extras);
	}
	return intent;
}
 
源代码17 项目: ActivityLauncher   文件: AllTasksListFragment.java
@Override
public boolean onContextItemSelected(MenuItem item) {
    ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item.getMenuInfo();
    ExpandableListView list = getView().findViewById(R.id.expandableListView1);

    switch (ExpandableListView.getPackedPositionType(info.packedPosition)) {
        case ExpandableListView.PACKED_POSITION_TYPE_CHILD:
            MyActivityInfo activity = (MyActivityInfo) list.getExpandableListAdapter().getChild(ExpandableListView.getPackedPositionGroup(info.packedPosition), ExpandableListView.getPackedPositionChild(info.packedPosition));
            switch (item.getItemId()) {
                case 0:
                    LauncherIconCreator.createLauncherIcon(getActivity(), activity);
                    break;
                case 1:
                    LauncherIconCreator.launchActivity(getActivity(), activity.component_name);
                    break;
                case 2:
                    DialogFragment dialog = new ShortcutEditDialogFragment();
                    Bundle args = new Bundle();
                    args.putParcelable("activity", activity.component_name);
                    dialog.setArguments(args);
                    dialog.show(getFragmentManager(), "ShortcutEditor");
                    break;
            }
            break;

        case ExpandableListView.PACKED_POSITION_TYPE_GROUP:
            MyPackageInfo pack = (MyPackageInfo) list.getExpandableListAdapter().getGroup(ExpandableListView.getPackedPositionGroup(info.packedPosition));
            switch (item.getItemId()) {
                case 0:
                    boolean success = LauncherIconCreator.createLauncherIcon(getActivity(), pack);
                    Toast.makeText(getActivity(), getString(R.string.error_no_default_activity), Toast.LENGTH_LONG).show();
                    break;
                case 1:
                    PackageManager pm = getActivity().getPackageManager();
                    Intent intent = pm.getLaunchIntentForPackage(pack.package_name);
                    if (intent != null) {
                        Toast.makeText(getActivity(), String.format(getText(R.string.starting_application).toString(), pack.name), Toast.LENGTH_LONG).show();
                        getActivity().startActivity(intent);
                    } else {
                        Toast.makeText(getActivity(), getString(R.string.error_no_default_activity), Toast.LENGTH_LONG).show();
                    }
                    break;
            }
    }
    return super.onContextItemSelected(item);
}
 
源代码18 项目: RelaxFinger   文件: AppUtils.java
public static boolean startApplication(String packageName) throws ActivityNotFoundException{

        PackageManager pm = context.getPackageManager();
        Intent intent = pm.getLaunchIntentForPackage(packageName);

        if (intent != null) {

            String className = intent.getComponent().getClassName();

            //解决直接用pm.getLaunchIntentForPackage(packageName)会重新打开APP的问题
            Intent intent1 = new Intent(Intent.ACTION_MAIN);
            intent1.addCategory(Intent.CATEGORY_LAUNCHER);
            intent1.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED | Intent.FLAG_ACTIVITY_NEW_TASK);
            intent1.setComponent(new ComponentName(packageName, className));

            context.startActivity(intent1);

            return true;

        }else {

            throw new  ActivityNotFoundException();
        }

    }
 
源代码19 项目: Android-utils   文件: IntentUtils.java
/**
 * 返回一个用来启动某个应用的意图
 *
 * @param pkgName   应用的包名
 * @param isNewTask 是否作为 NEW TASK 启动指定的应用
 * @return 意图
 */
public static Intent getLaunchAppIntent(final String pkgName, final boolean isNewTask) {
    PackageManager pm = UtilsApp.getApp().getPackageManager();
    Intent intent = pm.getLaunchIntentForPackage(pkgName);
    return getIntent(intent, isNewTask);
}
 
源代码20 项目: Cangol-appcore   文件: AppUtils.java
/**
 * 启动应用
 *
 * @param context
 * @param packageName
 */
public static void launch(Context context, String packageName) {
    final PackageManager packageManager = context.getPackageManager();
    final Intent intent = packageManager.getLaunchIntentForPackage(packageName);
    context.startActivity(intent);
}