Beiträge von GENiALi

    Zu 4: Wie so weg von Xamarin? Wegem API. Wenn Kunden auf Native Android dsa API einbinden wollen muss es Java sein. Daher auf native. Zudem scheint es noch Probleme zu geben, aber so genau kann ich es auch noch nicht sagen.


    Danke aber schon mal für die Antworten.

    Hallo


    Ab Januar darf ich mich als hauptberuflicher Android Entickler entfalten. Aktuell existiert noch gar nichts. Ziel ist es eine Xamarin Lösung zu Android Nativ zu migrieren und eine API aufzubauen. Im aktuellen Job betreue ich eine alte App mit IntelliJ IDEA.
    Aber wenn ich schon alles neu aufbauen kann, dann auch richtig. Dazu ein paar Fragen.
    1. Reicht Android Studio oder soll ich wieder auf IntelliJ IDEA setzten?
    2. Ich möchte/will mit Git arbeiten. Dazu brauche ich ein gutes Issue Tracking. Was wird empfohlen? Einfach kein TFS von MS. Ich möchte aus den Issues raus auf die änderungen im Code zugreife/verweisen können.
    3. Buildserver? Vorhanden ist Teamcity. OK?
    4. Fehlt was? :D

    Danke für die Antwort.
    In zwischen bin ich schlauer. Das Feld protocol scheint Herstellerspezifisch zu sein. Gibts nicht überall. Musste einfach das Feld type nehmen, was eigentlich korrekt wäre, um zu ermitteln ob ein SMS ein gesendetes, empfangenes oder ein draft ist.

    Hallo


    In letzter Zeit häufen sich die Feldermeldungen in bezug auf ein Datenbankfeld das es offensichltich nicht bei allen Androiden gibt. Konktet bei einem Galaxy Note GT-N7000. Hat jemand soeines? Ich habe "nur" ein SIII und ein LG Optimus 3D.


    Fehler kommt bei der Abfrage nach dem Feld protocol.


    Java
    Uri uriSMSURI = Uri.parse("content://sms");
    
    
    Cursor cur = context.getContentResolver().query(uriSMSURI, null, null, null, "_id DESC limit 1");
    cur.moveToNext();
    String protocol = null;
    
    
    protocol = cur.getString(cur.getColumnIndex("protocol"));


    android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0
    at android.database.AbstractCursor.checkPosition(AbstractCursor.java:400)
    at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136)
    at android.database.AbstractWindowedCursor.getInt(AbstractWindowedCursor.java:68)
    at android.database.CursorWrapper.getInt(CursorWrapper.java:102)
    at ch.geniali.com2cal.SendSms.send(SendSms.java:56)
    at ch.geniali.com2cal.service.OutgoingSms$1.onChange(OutgoingSms.java:60)
    at android.database.ContentObserver$NotificationRunnable.run(ContentObserver.java:43)
    at android.os.Handler.handleCallback(Handler.java:605)
    at android.os.Handler.dispatchMessage(Handler.java:92)
    at android.os.Looper.loop(Looper.java:137)
    at android.app.ActivityThread.main(ActivityThread.java:4511)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:511)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:986)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:753)
    at dalvik.system.NativeStart.main(Native Method)



    Wie kann ich generell solche Fehler vermeiden? Geht das überhaupt oder muss ich das akzeptieren und bei einem Auftretten eine Lösung suchen?

    Hallo


    Ich stehe vor dem Problem das ich jetzt komplexte Objekte mit Android an einen WCF Service übermitteln muss. Bislang waren es nur einfache Datentypen die man einfach mit ToString() übermitteln konnte. Aber bei komplexen Datentypen laufe ich voll auf.


    Interface:

    Code
    [WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.WrappedRequest)]
    List<StammdatenUpdate> RecordsUpdate(StammdatenType type, HashList listWithHashes);


    Implementation:

    Code
    public List<StammdatenUpdate> RecordsUpdate(StammdatenType type, HashList listWithHashes)
    {
        switch(type)
        {
       	 case StammdatenType.Client:
       		 return PITServiceApplication.GetDao<StammdatenDao>().ReadClientList(listWithHashes);
       	 default:
       		 return new List<StammdatenUpdate>();
        }
    }


    Klasse HashList:


    Android:



    Die WCF Seite kann damit nichts anfangen. Mit gson ein String zu erstellen damit ich das Objekt hashes übertragen kann wird dem WCF nicht schmecken. Das sieht dann in etwas im WCF wie folgt aus.

    Code
    <type type="string">0</type>
      <listWithHashes type="string">[{"Sha1Hash":"3c0fa90c9e358d699b7afeebb5f487c2405eec81","ID":10}


    Ich denke das Problem liegt beim type="string". Dort müsste wahrscheinlich type="HashList" stehen. Nur, wie bekomm ich das korrekt hin?

    Hallo


    Gibt es eigentlich nicht zu allem die CONTENT_URI? Konkret suche ich die CONTENT_URI für SMS.
    Oder ist das für alle Versionen content://sms?


    Ich habe noch gesehen das es so was in der Form hier gibt. content://sms/inbox
    Wie kommt man darauf? In der SDK Doku werde ich nicht fündig.

    Danke fürs Feedback.
    Ich kann mich aber nicht anmelden. Die wollen explizit die 25$, sonst komme ich nicht weiter.
    Habe es gerade nochmals durchgespielt. Irgend wann muss man mit Checkout arbeiten, und dort komme ich ohne Kreditkarte nicht weiter. :)


    Und das mit den Testusern freut mich auch. Jetzt muss ich mir schnell ne Karte besorgen.

    Hallo


    Ich habe schon ein paar BETA Test User zusammengetrommelt. War einfacher als gedacht. Aber die Updates sind doch ein krampf. Am App Store habe ich mich noch nicht angemeldet. Müsste mir zuerst noch eine Kreditkarte besorgen. Was mir aber nicht klar ist.
    Kann man über den App Store von Google auch sinnvoll BETA Tests machen?
    Eine App sollte dann nicht öfentlich SIchtbar sein. Nur die die den Link kennen. Somit würden auch die bei einem Update automatisch damit versorgt.
    Oder wie löst ihr das?

    Hallo


    Die Telefonnummer bei einem Anruf zu ermitteln scheint kein Problem zu sein. Der passende Kontakt dazu zu suchen eher schon. Klappen tut es, ich frage mich aber nur ob es wirklich so aufwendig gemacht werden muss.


    Zuerst erstelle ich einen Cursor der alle Kontakte enthält. Mit diesem Cursor prüfe ich die Kontakte darauf ob sie eine HAS_PHONE_NUMBER haben. Wenn ja hole ich mir diesen Kontakt, laufe durch alle Telefonnummern durch und prüfe ob die übergebene Telefonnummer mit dieser übereinstimmt.


    Telefonnummer muss aber noch normalisiert werden, das heisst alle Whitspaces entfernen da Andorid die Nummern so speichert wie sie eingegeben werden.


    Ist das Vorgehen so korrekt?