A presentation I gave at GDG DevFest NL 2014 about using Google Glass for Secure Access Control. Shows the different options for Glassware development and how to port an Android app to Glassware.
First Egeniq project • Developed for SURFnet in 2010 • Android and iOS apps • Open Source (Apache license) • https://tiqr.org • https://github.com/SURFnet/tiqr 10
keyword="@string/authenticate_voice_trigger"> <constraints camera=“true" network="true" /> </trigger> • Requires development permission: <uses-‐permission android:name="com.google.android.glass.permission.DEVELOPMENT" /> • Can’t be submitted to Glassware Gallery • Google open to new generic commands 17
to D-pad key events) GestureDetector gestureDetector = new GestureDetector(context); gestureDetector.setBaseListener(new GestureDetector.BaseListener() { @Override public boolean onGesture(Gesture gesture) { if (gesture == Gesture.TAP) { // do something on tap return true; } else if (gesture == Gesture.SWIPE_RIGHT) { // do something on right (forward) swipe return true; } else if (gesture == Gesture.SWIPE_LEFT) { // do something on left (backwards) swipe return true; } return false; } }); 20
public boolean onGesture(Gesture gesture) { if (gesture == Gesture.TWO_TAP) { // do something on two finger tap return true; } return false; } gestureDetector.setFingerListener(new GestureDetector.FingerListener() { @Override public void onFingerCountChanged(int previousCount, int currentCount) { // do something on finger count changes } }); gestureDetector.setScrollListener(new GestureDetector.ScrollListener() { @Override public boolean onScroll(float displacement, float delta, float velocity) { // do something on scrolling } }); 21
are created in code using builder pattern View cardView = new CardBuilder(this, CardBuilder.Layout.COLUMNS) .setIcon(challenge.getIdentityProvider().getLogoBitmap()) .setText(getString(R.string.authentication_confirmation_message, challenge.getIdentity().getDisplayName(), challenge.getIdentityProvider().getDisplayName())) .setFootnote(R.string.authentication_confirmation_tap) .getView(); setContentView(cardView); 23
• Most time spent on generalizing plus fixing old Android / Java code • Card layouts / voice input is easy • Intuitive interaction biggest challenge 31