2013-02-09 15 views
5

Ho un'app per Android che vorrei offrire su AppStore di Amazon. La mia app ha alcune funzioni basate sulla posizione e funzioni della fotocamera che devo disabilitare se il dispositivo dell'utente è un Kindle. C'è un modo per rilevare a livello di programmazione se il dispositivo di un utente è un Kindle? Sono consapevole di poter creare versioni diverse per Kindle e non Kindle, ma ho pensato di chiedere prima se c'è un modo per rilevarlo nel codice.Identifica se il dispositivo è Kindle

+1

Si potrebbe chiedere la domanda sbagliata. Qual è il problema sul Kindle? – Simon

+0

Ad esempio, kindle non ha una videocamera. Una delle funzioni della mia app è accedere alla videocamera. Sto esplorando se posso, ad esempio, eliminare la voce del menu della fotocamera in base al controllo se il dispositivo è un Kindle. –

+0

@Simon avevi ragione - era la domanda sbagliata. 'Come rilevare le caratteristiche del dispositivo' sarebbe stato meglio. Grazie. –

risposta

12

Per verificare se il dispositivo ha una determinata funzione, è PackageManager.hasSystemFeature(String name) che dovrebbe essere sufficiente nel tuo caso.

Per controllare per la localizzazione e la fotocamera è possibile utilizzare FEATURE_LOCATION e FEATURE_CAMERA come argomento di hasSystemFeature

Se hai ancora bisogno di conoscere l'hardware del dispositivo, è possibile controllare android.os.Build.MANUFACTURER android.os.Build.BRAND android.os.Build.BOARD android.os.Build.DEVICE

+0

Grazie, perfetto! Lo apprezzo davvero, una risposta così veloce e dettagliata. –

1

So che questo post è vecchio, ma l'approccio a questo è sbagliato. Se il problema con Kindles è legato all'hardware, ad esempio, i Kindle non dispongono di supporto per fotocamera o videocamera, quindi è necessario verificare che il supporto della fotocamera non sia di tipo dispositivo. Cosa succede se altri dispositivi non offrono supporto per la fotocamera? Invece di risposta suggerita, provare questo

public static boolean isCameraAvailable(Context context) { 
    PackageManager packageManager=context.getPackageManager(); 
    if (packageManager.hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY)) { 
     // this device has a camera 
     return true; 
    } else { 
     // no camera on this device 
     return false; 
    } 
} 

Questo è molto meglio di rilevamento per se il dispositivo è un kindle, altrimenti fare un altro accumulo specifico per Kindle.

4

È possibile utilizzare questo metodo per identificare un dispositivo Kindle (s)

public static boolean isKindle(){ 
     final String AMAZON = "Amazon"; 
     final String KINDLE_FIRE = "Kindle Fire"; 

     return (Build.MANUFACTURER.equals(AMAZON) && Build.MODEL.equals(KINDLE_FIRE)) || Build.MODEL.startsWith("KF"); 
} 
+1

Semplice e carino. – berserk

Problemi correlati