Je travaille sur une application Blackberry qui inclut la fonctionnalité de pincement Zoom, mais cette fonctionnalité fonctionne sur les appareils à écran tactile. Mon application fonctionnera également sur le type de courbe des appareils. S'il vous plaît laissez-moi savoir si "je peux détecter par programme si l'appareil est tactile ou pas" afin que je puisse rendre mon application flexible pour les deux types.Détecter un écran tactile dans Blackberry?
Répondre
Si vous avez seulement besoin de soutenir OS 4.7+ périphériques, vous n'avez pas besoin d'utiliser le préprocesseur. Vous pouvez tester pour programme l'écran tactile avec ceci:
boolean isTouch = TouchScreen.isSupported();
Que Rupak a suggéré dans sa réponse ne peut être assez (juste en ajoutant toucher le code de gestion, qui sera ignoré pour les appareils non tactiles). Dans votre cas, si vous souhaitez prendre en charge une fonction de zoom, vous devrez peut-être détecter activement un périphérique non tactile (avec le code ci-dessus) et choisir d'ajouter un nouveau zoom ButtonField
, qui n'est même pas visible sur les périphériques tactiles. soutenir le geste de pincement. Si vous ne le faites pas, les appareils non tactiles ne pourront pas effectuer de zoom ou les appareils tactiles seront encombrés d'un bouton inutile.
Mais, l'API TouchScreen
est seulement pour 4.7+. Si vous devez exécuter le même code sur les anciennes versions OS, aussi, cette autre méthode peut être utilisée:
boolean isTouch = (new Canvas(){protected void paint(Graphics graphics){}}).hasPointerEvents();
Mes applications pour la plupart ne supportent toujours 4.5+, qui ne peut même compiler toucher code de gestion. Donc, je me base normalement sur ce type de macro de préprocesseur pour compiler sélectivement du code différent.Tout d'abord, en haut du fichier
//#preprocess
Puis, partout dans le fichier:
//#ifndef TOUCH_SCREEN
/*
//#endif
// code only for touch devices:
import net.rim.device.api.ui.TouchEvent;
//#ifndef TOUCH_SCREEN
*/
//#endif
Et puis pour builds que je produirai pour le déploiement d'appareils à écran tactile, ajouter le drapeau touch_screen préprocesseur. Si vous ne voulez pas vous soucier de télécharger différents paquets d'applications pour les périphériques tactiles ou non tactiles, il suffit de détecter par programme les écrans tactiles avec le code Java (isTouch
) et d'utiliser le préprocesseur juste pour supprimer le code qui ne sera pas compilé sur versions antérieures au système d'exploitation 4.7.
Remarque: cette logique de préprocesseur "double négatif" quelque peu confuse est pas une erreur. C'est comme ça de prendre en compte la manière légèrement différente dont les préprocesseurs dans les environnements IDE compatibles BlackBerry (par exemple JDE, Eclipse, Netbeans) gèrent le prétraitement. Malheureusement, le prétraitement n'est pas une fonctionnalité J2ME standardisée, donc sa mise en œuvre est un peu floue.
Le support tactile a été ajouté depuis BlackBerry API 4.7.0. Vérifiez la documentation de la classe TouchEvent. Par conséquent, si vous développez une application pour les périphériques fonctionnant sur la version 4.7.0 ou ultérieure, vous n'avez rien à faire. Vous pouvez coder les tâches liées aux événements tactiles et l'application fonctionnera sur les appareils tactiles et non tactiles. Pour les périphériques non tactiles, le code associé à l'événement tactile ne sera pas exécuté.
Mais si vous avez besoin de prendre en charge des périphériques plus anciens fonctionnant sous 4.7.0, vous devez utiliser des directives de préprocesseur.
Essayez de suivre le lien pour l'utilisation des directives de préprocesseur sur votre application:
Coding for Multiple Blackberry Devices - Using Preprocessor Directives in Eclipse
Autres liens connexes:
Create preprocessor directives for a workspace
Specifying preprocessor directives
Preprocessor directives supported by the RIM compiler
Using preprocessor directives in BlackBerry JDE plugin for eclipse?
Bonjour Rupak, merci beaucoup pour une si bonne explication. C'est très utile pour moi en tant que base de connaissances. Je n'avais encore utilisé aucun code de type préprocesseur dans mes applications. mais ici, dans cette application, je travaille sur 5.0 + OS car j'utilise aussi la base de données locale. Donc je viens d'utiliser isSupported() de la classe TouchScreen. Agains thanxx pour l'aide. :) –
- 1. détecter bureau à écran tactile
- 2. Comment puis-je détecter si un écran est tactile?
- 3. tactile événement dans BlackBerry
- 4. Comment détecter spécifiquement un écran tactile sur Windows 8?
- 5. Android: détecter un écran tactile capacitif ou résistif
- 6. fichier rdf et les appareils à écran tactile BlackBerry
- 7. Détecter si périphérique tactile
- 8. Android 4.x: détecter le mode souris ou écran tactile
- 9. détecter la souris sur l'appareil à écran tactile
- 10. javascript (ou Django/Python): détecter si écran tactile
- 11. iOS détecter écran tactile alors que l'affichage est éteint
- 12. Comment détecter un périphérique mobile à écran tactile en utilisant 51degrees.mobi
- 13. événement tactile Blackberry heurtant
- 14. Écran tactile C# XNA - Écran tactile Surface Pro non reconnu
- 15. Comment détecter un emplacement tactile dans SpriteKit?
- 16. Ajouter un écran déroulant dans blackberry
- 17. Écran tactile automatique
- 18. GWT 2.4.0 écran tactile
- 19. PyGame tout écran tactile
- 20. PiTFT écran tactile Buildroot
- 21. Listview, écran tactile unique?
- 22. Écran tactile sur Android
- 23. Écran tactile Qt Application
- 24. Android écran tactile faux
- 25. Comment rendre mon écran tactile tactile?
- 26. Écran tactile LCD TFT
- 27. cocos2D Écran tactile crash
- 28. JQUERY Clavier écran tactile
- 29. Comment actualiser un écran [précédent] sur l'écran tactile sur Blackberry OS 6
- 30. Détecter l'écran tactile dans iOS
Thanx alot Nate, je viens d'utiliser la méthode isSupported(). Cela rend mon application flexible pour les appareils tactiles et non tactiles. –