private boolean isPackageInstalled(String packagename, PackageManager packageManager) { try { packageManager.getPackageInfo(packagename, PackageManager.GET_ACTIVITIES); return true; } catch (NameNotFoundException e) { return false; } }
import android.content.pm.PackageManager; public boolean isPackageExisted(String targetPackage){ PackageManager pm=getPackageManager(); try { PackageInfo info=pm.getPackageInfo(targetPackage,PackageManager.GET_META_DATA); } catch (PackageManager.NameNotFoundException e) { return false; } return true; }
PackageManager manager = this.getPackageManager(); PackageInfo info = manager.getPackageInfo(this.getPackageName(), 0); Toast.makeText(this, "PackageName = " + info.packageName + "\nVersionCode = " + info.versionCode + "\nVersionName = " + info.versionName + "\nPermissions = " + info.permissions, Toast.LENGTH_SHORT).show();
public static boolean isPocketInstalled(Context context) { PackageManager pm = context.getPackageManager(); PackageInfo info; try { info = pm.getPackageInfo(PACKAGE, 0); } catch (PackageManager.NameNotFoundException e) { info = null; } return info != null; } }
@Nullable private static PackageInfo getPackageInfo(@NonNull Context context) { try { return context.getPackageManager().getPackageInfo(context.getPackageName(), 0); } catch (PackageManager.NameNotFoundException e) { Log.e(TAG, "Cannot resolve info for" + context.getPackageName(), e); return null; } }
private String getAppLabelAndVersion() { StringBuilder b = new StringBuilder(); PackageManager pm = mContext.getPackageManager(); b.append(getAppLabel()); b.append('/'); try { PackageInfo info = pm.getPackageInfo(mContext.getPackageName(), 0 /* flags */); b.append(info.versionName); } catch (PackageManager.NameNotFoundException e) { throw new RuntimeException(e); } return b.toString(); }
private int getResourceId(String packageName) { PackageInfo packageInfo; try { packageInfo = context.getPackageManager().getPackageInfo(packageName, /*flags=*/ 0); } catch (NameNotFoundException e) { return 0; } return packageInfo.applicationInfo.icon; }
@Implementation(minSdk = N) protected boolean isPackageSuspended(ComponentName admin, String packageName) throws NameNotFoundException { if (admin != null) { enforceDeviceOwnerOrProfileOwner(admin); } // Throws NameNotFoundException context.getPackageManager().getPackageInfo(packageName, 0); return suspendedPackages.contains(packageName); }
@Test public void testMissingPackageInfo() throws NameNotFoundException { Context context = mock(Context.class, Answers.RETURNS_DEEP_STUBS.get()); String packageName = "my.package"; when(context.getPackageName()).thenReturn(packageName); when(context.getPackageManager().getPackageInfo(packageName, 0)).thenReturn(null); Key key = ApplicationVersionSignature.obtain(context); assertNotNull(key); } }
@Test public void testUnresolvablePackageInfo() throws NameNotFoundException { Context context = mock(Context.class, Answers.RETURNS_DEEP_STUBS.get()); String packageName = "my.package"; when(context.getPackageName()).thenReturn(packageName); when(context.getPackageManager().getPackageInfo(packageName, 0)) .thenThrow(new NameNotFoundException("test")); Key key = ApplicationVersionSignature.obtain(context); assertNotNull(key); }
@Test public void getPackageInfo_shouldHaveWritableDataDirs() throws Exception { PackageInfo packageInfo = packageManager.getPackageInfo( ApplicationProvider.getApplicationContext().getPackageName(), 0); File dataDir = new File(packageInfo.applicationInfo.dataDir); assertThat(dataDir.isDirectory()).isTrue(); assertThat(dataDir.exists()).isTrue(); }
@Test public void shouldCreateIfDoesNotExistAndGetApplicationDataDirectory() throws Exception { File dataDir = new File(context.getPackageManager() .getPackageInfo("org.robolectric", 0).applicationInfo.dataDir, "data"); assertThat(dataDir.exists()).isFalse(); dataDir = context.getDir("data", Context.MODE_PRIVATE); assertThat(dataDir.exists()).isTrue(); }
@Test public void addPackageSetsStorage() throws Exception { shadowPackageManager.addPackage("test.package"); PackageInfo packageInfo = packageManager.getPackageInfo("test.package", 0); assertThat(packageInfo.applicationInfo.sourceDir).isNotNull(); assertThat(new File(packageInfo.applicationInfo.sourceDir).exists()).isTrue(); assertThat(packageInfo.applicationInfo.publicSourceDir) .isEqualTo(packageInfo.applicationInfo.sourceDir); }
@Test public void getPackageInfo_shouldReturnRequestedPermissions() throws Exception { PackageInfo packageInfo = packageManager.getPackageInfo( ApplicationProvider.getApplicationContext().getPackageName(), PackageManager.GET_PERMISSIONS); String[] permissions = packageInfo.requestedPermissions; assertThat(permissions).isNotNull(); assertThat(permissions.length).isEqualTo(4); }
@Test public void testGetPackageInfo_ForReceiversSucceeds() throws Exception { PackageInfo receiverInfos = packageManager.getPackageInfo( ApplicationProvider.getApplicationContext().getPackageName(), PackageManager.GET_RECEIVERS); assertThat(receiverInfos.receivers).isNotEmpty(); assertThat(receiverInfos.receivers[0].name) .isEqualTo("org.robolectric.ConfigTestReceiver.InnerReceiver"); assertThat(receiverInfos.receivers[0].permission).isEqualTo("com.ignored.PERM"); }
@Test public void getPackageInfo_shouldReturnActivityInfos() throws Exception { PackageInfo packageInfo = packageManager.getPackageInfo( ApplicationProvider.getApplicationContext().getPackageName(), PackageManager.GET_ACTIVITIES); ActivityInfo activityInfoWithFilters = findActivity(packageInfo.activities, ActivityWithFilters.class.getName()); assertThat(activityInfoWithFilters.packageName).isEqualTo("org.robolectric"); assertThat(activityInfoWithFilters.exported).isEqualTo(true); assertThat(activityInfoWithFilters.permission).isEqualTo("com.foo.MY_PERMISSION"); }
@Test public void getPackageInfo_getProvidersShouldReturnProviderInfos() throws Exception { PackageInfo packageInfo = packageManager.getPackageInfo( ApplicationProvider.getApplicationContext().getPackageName(), PackageManager.GET_PROVIDERS); ProviderInfo[] providers = packageInfo.providers; assertThat(providers).isNotEmpty(); assertThat(providers.length).isEqualTo(2); assertThat(providers[0].packageName).isEqualTo("org.robolectric"); assertThat(providers[1].packageName).isEqualTo("org.robolectric"); }
@Test public void getPackageInfo_uninstalledPackage_includeUninstalled() throws Exception { String packageName = ApplicationProvider.getApplicationContext().getPackageName(); shadowPackageManager.deletePackage(packageName); PackageInfo info = packageManager.getPackageInfo(packageName, MATCH_UNINSTALLED_PACKAGES); assertThat(info).isNotNull(); assertThat(info.packageName).isEqualTo(packageName); }
@Test public void testGetPackageInfo_ForReceiversIncorrectPackage() { try { packageManager.getPackageInfo("unknown_package", PackageManager.GET_RECEIVERS); fail("should have thrown NameNotFoundException"); } catch (PackageManager.NameNotFoundException e) { assertThat(e.getMessage()).contains("unknown_package"); } }
@Test public void getPackageInfo_uninstalledPackage_dontIncludeUninstalled() throws Exception { String packageName = ApplicationProvider.getApplicationContext().getPackageName(); shadowPackageManager.deletePackage(packageName); try { PackageInfo info = packageManager.getPackageInfo(packageName, 0); fail("should have thrown NameNotFoundException:" + info.applicationInfo.flags); } catch (NameNotFoundException e) { // expected } }