• Programmazione Android
  • CORSI ONLINE
  • Web Agency

Logo

Corsi di programmazione web e mobile online
Navigation
  • Home
  • CORSI ONLINE
  • Tutorial Pratici
  • GUIDE COMPLETE
    • Corso completo di C
    • Corso videogame con Cocos2d
    • Programmazione Cocoa Touch
  • Sezioni
    • Libri e manuali
    • Tips & Tricks
    • Risorse utili
    • Strumenti di Sviluppo
    • Materiale OpenSource
    • Framework
    • Guide Teoriche
    • Guide varie
    • Grafica e Design
    • iPad
    • News
    • Video Tutorial
    • Windows Phone
  • Pubblicità
  • About
    • Chi siamo
    • Pubblicazioni
    • Collabora
    • Sostieni devAPP

Android: scopriamo tutto sulle nostre app con PackageManager

By Giuseppe Maggi | on 4 Gennaio 2018 | 0 Comment
Android Tips & Tricks
PackageManager Android developers tips

In Android, è possibile recuperare le informazioni relative alle applicazioni installate tramite un componente di nome PackageManager.
Ne possiamo ottenere un riferimento mediante il Context con il metodo getPackageManager:

PackageManager pkg=getPackageManager();

La chiamata precedente funziona, come presumibile, a patto che ci si trovi in un’Activity o in un Service altrimenti è necessario ottenere un riferimento ad un Context ed invocare il metodo tramite questo.
La classe PackageManager è ricca di metodi che forniscono informazioni abbondanti in tempi brevi: vediamone alcuni.
Potremo avere l’elenco delle applicazioni installate nel dispositivo tramite:

List<ApplicationInfo> apps=pkg.getInstalledApplications(PackageManager.GET_META_DATA);

L’argomento PackageManager.GET_META_DATA è uno dei flag utilizzabili (nonchè combinabili tra loro) per poter meglio definire il tipo di ricerca che si vuole effettuare. Nello specifico, GET_META_DATA fornisce accesso ai metadati dell’applicazione. In alternativa, potremmo richiedere solo dati relativi alle app di sistema impiegando il flag MATCH_SYSTEM_ONLY.
Il risultato è una lista di oggetti ApplicationInfo ognuno dei quali raccoglie tutte le informazioni racchiuse nel nodo <application> del file AndroidManifest.xml di ciascuna applicazione.

ApplicationInfo contiene a sua volta dei flag – proprietà flags – che permettono di verificare alcune caratteristiche dell’applicazione. Per sapere, ad esempio, se l’app è installata dall’utente o se è un’applicazione di sistema basterà verificare se in flags è settato il bit FLAG_SYSTEM tramite l’operatore AND bitwise (l’oggetto app è di classe ApplicationInfo):

(app.flags&ApplicationInfo.FLAG_SYSTEM)==0

Se il controllo restituisce true significa che l’app in questione non è di sistema ma è stata installata dall’utente.

Altri metodi del PackageManager restituiscono un oggetto PackageInfo che offre le informazioni contenute nell’intero file AndroidManifest.xml, non solo nel nodo <application>.
Supponendo di avere installato un’app con package com.esempio.miaapp ne potremo recuperare le informazioni di package con

PackageInfo pi=null;
try {
  pi=pkg.getPackageInfo("com.esmepio.miaapp", PackageManager.GET_META_DATA);
} 
catch (PackageManager.NameNotFoundException e) {
  // gestione dell'eccezione
}

dove la gestione dell’eccezione PackageManager.NameNotFoundException è obbligatoria.

Qui abbiamo visto solo un paio di esempi, caratterizzati tuttavia da una certa potenziale utilità, ci sono però molti altri metodi e flag da poter impiegare nelle nostre verifiche e, in questo, la documentazione ufficiale costituirà una ricca fonte di ispirazione.
Alla prossima!

Share this story:
  • tweet

Tags: androidandroidmanifestcreare app mobilepackagemanager

Recent Posts

  • Parte il percorso programmatori iOS in Swift su devACADEMY.it

    20 Dicembre 2017 - 0 Comment
  • Android, crittografare dati velocemente con Encryption

    24 Settembre 2018 - 0 Comment
  • Sql2o, accesso immediato ai database tramite Java

    3 Settembre 2018 - 0 Comment
  • Okio, libreria per ottimizzare l’input/output in Java

    27 Agosto 2018 - 0 Comment

Related Posts

  • IntelliJ IDEA: IDE per programmare in Java e Kotlin

    25 Luglio 2018 - 0 Comment
  • Android: usare Connect Pattern

    10 Luglio 2018 - 0 Comment
  • Android: il metodo findViewById() non richiede più il cast

    21 Giugno 2018 - 0 Comment

Author Description

No Responses to “Android: scopriamo tutto sulle nostre app con PackageManager”

Leave a Reply

Your email address will not be published. Required fields are marked *


*
*

Corso online di programmazione android e java

SEZIONI

  • Android
  • Comunicazioni
  • Contest
  • Corsi ed Eventi
  • Corso completo di C
  • Corso programmazione videogiochi
  • Framework
  • Grafica e Design
  • Guida rapida alla programmazione Cocoa Touch
  • Guide Teoriche
  • Guide varie
  • iPad
  • Le nostre applicazioni
  • Libri e manuali
  • Materiale OpenSource
  • News
  • Pillole di C++
  • Progetti completi
  • Risorse utili
  • Strumenti di Sviluppo
  • Swift
  • Tips & Tricks
  • Tutorial Pratici
  • Video Tutorial
  • Windows Phone

Siti Amici

  • Adrirobot
  • Allmobileworld
  • Apple Notizie
  • Apple Tribù
  • Avvocato360
  • Blog informatico 360°
  • bubi devs
  • fotogriPhone
  • GiovaTech
  • iApp-Mac
  • iOS Developer Program
  • iPodMania
  • MelaRumors
  • Meritocracy
  • SoloTablet
  • TecnoUser
  • Privacy & Cookie Policy
©2009-2018 devAPP - All Rights Reserved | Contattaci
devAPP.it è un progetto di DEVAPP S.R.L. - Web & Mobile Agency di Torino
Str. Volpiano, 54 - 10040 Leini (TO) - C.F. e P.IVA 11263180017 - REA TO1199665 - Cap. Soc. € 10.000,00 i.v.

devACADEMY.it

Vuoi imparare a programmare?

Iscriviti e accedi a TUTTI i corsi con un’unica iscrizione.
Oltre 70 corsi e migliaia di videolezioni online e in italiano a tua disposizione.

ISCRIVITI SUBITO