End of the story for Microsoft Band

Microsoft BandAccording to numerous rumors there might be no follower for Microsoft Band 2. This is still not officially confirmed by Microsoft, however, this seems to be only a question of time.

Personally I cannot really follow this strategy step of Microsoft. Weak market? This is the only explanation I can think of. Yes, Microsoft Band 2 is not perfect. But still it has its fans. Currently, its the only device on the markt with such a wide range of sensors.

I had also an opportunity to play a bit with its SDK. It makes a pleasant impression. The only shortcoming I can point on is the way for accessing the health data. It is only possible to access the data in real time. There must be always a bluetooth connection between your iPhone/Android/Windows  app and the band, during the native “Microsoft Band” app can access the internal memory of the band and read data stored on it.

If the next generation of the Microsoft band had been extended by an interface for accessing the data stored on the band, it would make it to an attractive wearable. At least from the app developing point of  view.

PolterApp Versionen 1.5 und 1.6

PolterAppPraktisch hintereinander sind zwei Updates erschienen, Versionen 1.5 und 1.6. Es handelt sind dabei um reine Fehlerbehebungen. Insbesondere gab es Probleme mit Fotos. Die PolterApp stürzte während Fotoaufnahmen ab. Nun sollte alles wieder in Ordnung sein

PolterApp Version 1.4

PolterAppVersion 1.4 der PolterApp bringt ein neues Meßverfahren mit, nämlich Schätzverfahren. Wie die Sektionsvermessung steht auch dieses Verfahren ab sofort kostenlos zur Verfügung. Umsetzung weiterer Meßverfahren Einzelstammerfassung und Mantelmaß ist bis Ende des Jahres eingeplant.

Des Weiteren wurden diverse kleine Fehler in der PolterApp behoben. Insbesondere ist die neue Version 1.4 komplett iOS 10 kompatibel.

PolterApp Version 1.3

PolterAppVersion 1.3 der PolterApp bringt ein neues Feature mit. Polternummern wurden bis jetzt immer automatisch generiert “Polter-1”, “Polter-2” … “Polter-n”. Nun kann der Nutzer selbst Nummer-Generierung  einstellen. Anstatt fest verdrahteter Präfix “Polter” kann alles mögliche eingegeben werden, z.B. “IGO-1”, “IGO-2”, … “IGO3”.

Das neue Update der PolterApp enthält auch Fine-Tuning der Sektionsvermessung. Die Gesamtlänge des Polters muss nicht sofort eingegeben werden. Die Längen einzelner Sektionen werden aufsummiert und angezeigt.

 

PolterApp Version 1.2

PolterApp“Was nützt mir Poltererfassung in der App, wenn ich die Daten aus der App später nicht rauskriege? Ich kann doch gleich wieder mit Stift und Papier arbeiten”. Das war ein Kommentar, was für die Bereitstellung des zweiten Updates der PolterApp gesorgt hat.

In der Version 1.2 wurde PDF-Export und E-Mail Versandt umgesetzt. Im Moment können nur einzelne Polter als PDF exportiert werden. Perspektivisch wird es möglich sein, auch mehrere Polter gleichzeitig zu drucken/exportieren/verschicken.

PolterApp Version 1.1

PolterAppKnapp eine Woche im App-Store! Die ersten Kommentare und Feedback ließ nicht lange auf sich Warten. Ich bedanke mich bei den ersten Nutzern für die Zeit und wertvollen Tipps!

Daraufhin gibt es seit gestern ein Update für die PolterApp Version 1.1. Die neue Version enthält folgende Verbesserungen:

– Verbesserte Zahlenangabe auf dem iPhone.
– Baumarten, Sorten und Güte können nun nicht nur aus einer Liste ausgewählt, sondern auch manuell als Text eingegeben werden
– Baumarten-, Sorten- und Güte-Listen wurden gründlich überarbeitet
– Beim Anlegen eines neuen Polters kann der Nutzer nun entscheiden, ob die Basisdaten vom aktiven Polter übernommen werden sollen
– Diverse Fehlerbehebungen

Smartphones und die Holzerfassung

forestNoch bis vor kurzem hieß es Smartphones und Tables im Wald seien nur ein Spielzeug. Wie soll es überhaupt gehen, die Holzmessdaten in strömendem Regen oder prallender Sonne, dazu oft noch ohne Internet zu erfassen?  Doch die Zeiten haben sich geändert. Die Geräte werden immer tauglicher für den Einsatz im Wald. Dabei müssen es nicht immer die teueren Toughbooks sein. Auch iPads und Android Geräte lassen sich durch stoßfeste und wasserdichte Cases zu einem praktischen Werkzeug bei der Holzerfassung aufrüsten.

Viele Forstbetriebe und Holzankäufer haben das Potenzial von Smartphones/Tablets bereits erkannt und integrieren diese in ihre Abläufe. Die Holzmessdaten werden nicht mehr mit Stift und Papier aufgenommen, was früher immer fehlerträchtig und lästig war, sondern werden direkt in der App angegeben. Die Apps sind häufig in der Lage die Holzdaten mit einem Verwaltungssystem zu synchronisieren. Die Synchronisation erfolgt wenn die Internetverbindung vorhanden ist. Bis dahin werden Holzmessdaten auf dem Smartphone/Tablet aufbewahrt.

 

PolterApp ist im App-Store

PolterAppPolterApp steht ab heute bei iTunes zum Download bereit!

Endlich können nicht nur die großen Betriebe, sondern auch die kleinen Unternehmen vom Einsatz elektronischer Medien im Wald profitieren. PolterApp ist die erste App im App-Store die zu einem günstig ist. Alle Funktionen stehen ohne Einschränkungen dauerhaft umsonst zur Verfügung. Zum anderen bietet die PolterApp Flexibilität und Stärken einer Enterprise-App, welche mühelos in bestehende Infrastrukturen integriert werden kann.

Version 1.0 der PolterApp hat sicherlich noch den BETA-Charakter. Asketisches Design, ein oder anderer Schreibfehler ist das was in kürze nachgeholt wird. Viel wichtiger ist, dass die App in unmittelbarer Kommunikation mit Nutzern entsteht und alle Besonderheiten des Einsatzgebiets berücksichtigt. Das war auch der Grund, mit der PolterApp früh genug an den Start zu gehen, um möglichst viel Feedback während laufender Entwicklung zu sammeln.

In der ersten Version bietet PolterApp folgende Funktionen an:
– Übersicht über alle erfassten Polter
– Angabe der Polterbasis Daten, wie etwa Walbesitzer, Förster, Preis etc.
– Sektionsvermessung
– Unbeschränkte Anzahl an Polter-Photos
– Speichern der GPS-Koordinate mit einem Polter. Einsicht des Polters auf Google-Maps

Die Weiterentwicklung der PolterApp läuft kontinuierlich weiter. Ich freue mich auf Euer Feedback und Kommentare!

New look, new goals

field-viewI gave up my private web site i-gorod.org and now moved my internet presence to a new domain. It is not only the domain name that was changed, but also the concept. i-gorod was once a chat for the friends of mine. Afterwards I made it to a developer blog and never found time to full it with content.

igoMobile is in opposite my business card. On one hand it enlightens the projects I work on. On the other hand it will help me to maintain the contacts, extend my network and find new challenges.

Detecting incoming and outgoing calls in Android

Detecting incoming and outgoing calls in Android can be realized in several ways. One of the possibilities is to use a custom PhoneStateListener which can be attached to the TelephonyManager in your onReceive() function of the custom BroadcastReceiver. This is a “clean” way, beacause the BoradcastReceiver object is destroyed as soon as the onReceive() function is left. But if you just want to do some little stuff, you can implement your logic directly in the onReceive() function. Here how it works.

For detecting outgoing calls you need to register android.permission.PROCESS_OUTGOING_CALLS permission. The android.intent.action.NEW_OUTGOING_CALL will be broadcasted when an outgoing call is initiated. Use an extra string variable Intent.EXTRA_PHONE_NUMBER to detect the outgoing number.

For incoming call you need to register your BroadcastReceiver for the action android.intent.action.PHONE_STATE. This will be broadcasted when the phone state is changed. The receiving intent contains an extra string variable TelephonyManager.EXTRA_STATE. If this state is TelephonyManager.EXTRA_STATE_RINGING then there will be another extra string variable (! only if state = TelephonyManager.EXTRA_STATE_RINGING !). Use TelephonyManager.EXTRA_INCOMING_NUMBER to read the incoming phone number.

And now the corresponding code. In your manifest.xml add following lines for permissions:

 
 <uses-permission android:name="android.permission.READ_PHONE_STATE" />
 <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />

Furthermore add your BroadcastReceiver:

 
<receiver android:name="YourBroadcastReceiver">
    <intent-filter>
        <action android:name="android.intent.action.PHONE_STATE"></action>
        <action android:name="android.intent.action.NEW_OUTGOING_CALL"></action>
    </intent-filter>
</receiver>

Your code would look like this:

public class YourBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
   Bundle bundle = intent.getExtras();
   if (bundle == null)
      return;
   String phoneNumber = null;
	
   // Incoming call
   String state = bundle.getString(TelephonyManager.EXTRA_STATE);
   if ((state != null) 
        &amp;amp;&amp;amp; (state.equalsIgnoreCase(TelephonyManager.EXTRA_STATE_RINGING))) {
	   phoneNumber = bundle.getString(TelephonyManager.EXTRA_INCOMING_NUMBER);	
	   // Here: do something with the number	         
   }
   // Outgoing call
   else if (state == null) {		
      phoneNumber = bundle.getString(Intent.EXTRA_PHONE_NUMBER);
      // Here: do something with the number
   }  
 }	
}