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
risposta
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
Grazie, perfetto! Lo apprezzo davvero, una risposta così veloce e dettagliata. –
Se si desidera rilevare Kindle, controllare il produttore (Amazon) utilizzando Build.MANUFACTURER e il modello usando Build.MODEL. Il valore del modello in caso di Kindle può variare, può essere KFTT, KFOT, Kindle Fire, ecc. See this for model nos.
Grazie, molto utile. + 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.
È 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");
}
Semplice e carino. – berserk
Si potrebbe chiedere la domanda sbagliata. Qual è il problema sul Kindle? – Simon
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. –
@Simon avevi ragione - era la domanda sbagliata. 'Come rilevare le caratteristiche del dispositivo' sarebbe stato meglio. Grazie. –