chucky
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Versions and GitHub Sync Note Insights Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       owned this note    owned this note      
    Published Linked with GitHub
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    - Könntet ihr in wenigen Worten zusammenfassen, was das Hauptziel des Projekts ist? - Wurde der Kontext (d.h. Motivation, Einsatzgebiet, ev. Zielgruppe) erläutert? - Wird deutlich wie das Projekt umgesetzt wurde d.h. werden Komponenten oder Architektur skizziert und relevante eingesetzte Technologien genannt? - Wird der Umfang des Projektes klar? Was soll gebaut werden? Was existiert ggf. bereits schon? Was ist nicht relevant? - Hat die Beschreibung einen angemessenen Umfang? Werden also alle oben genannten Punkte ausreichend klar, ohne, dass unnötig viele weitere Dinge aufgelistet werden? - Was fällt euch noch auf? Welche Tipps habt ihr aus eurer eigenen Erfahrung? Was hilft euch beim Schreiben? Bitte explizit auch angeben, wenn euch etwas positives auffällt. ___ ## Einleitung - [x] Motivation als Einleitung ## bereits kurze Zusammenfassung der Projektbeschreibung? ## Motivation: - [x] Schlechter WLANempfang durch: - [x] Fehlende/falsch positionierte Accesspoints - [x] Funken auf falschen Kanälen - [x] Netze die sich gegenseitig behindern. - [x] Interferenzen von verschiedenen Netzwerken können sich gegenseitig stören - [x] Parameter am Router anpassen - [x] Umpositionierung des Accesspointer anhand der gesammelten Daten ## Freifunk Darmstadt - [x] Hochschulgruppe des Chaos Darmstadt - [x] Ziel: Flächendeckend, kostenloses WLAN - [x] Privatpersonen stellen Teil ihrer Bandbreite für die Öffentlichkeit zur Verfügung - [x] Gemeinnützig organisiert - [x] bereitstellung von Freiem WLAN - [x] dezentral organisiert - [x] keine Anmeldung notwendig - [x] Unsere AGs sind von Freifunk Darmstadt ## Zielgruppe - [x] Enthusiasten die den Freifunk unterstützen wollen, nach fertigstellung auch Privat - [x] Unterstützer von Freifunk - [x] Grundsätzlich kann jeder mit der App Daten sammeln - [x] Anhand dieser gesammelten Daten kann Freifunk weiter arbeiten ## Einsatzgebiet - *kombinieren mit Zielgruppe* - [x] Mobile Anwendung - [x] Überall wo es WLAN gibt, vorerst Fokus auf Freifunk, später private Netze - [ ] Anwendung von Grund auf neu aufgezogen. - [ ] Von FreiFunk Vorauswahl zwischen Plattform Linux und Android - *Übergang zur Android app* - [x] Analyse von WLAN-Netzwerken ## Kotlin, - [ ] Standard Programmiersprache für Android Anwendungen - [ ] Java auch möglich aber nicht von google empfohlen - [ ] entschieden durch präferenz unserer Gruppe - [ ] Die App wird in Kotlin geschrieben - [ ] Vorgabe von den AGs ## Android - [ ] Android 8.0 - 12.0 - [ ] Abdeckung von 82% - [ ] Damit es auf möglichst vielen geräten läuft - [ ] Damit die Anwendung Portabel ist - [ ] Android hat vorteil über ios da besserer lowlevel zugriff - [ ] Damit man mobiler ist werden Smartphones zum sammeln von Daten verwendet - [ ] Android Entwicklung war eine Vorgabe der AGs - [ ] Für IOS hätte man sonst nicht Kotlin verwenden können - [ ] Die App hätte man sonst nochmal portieren müssen in Flutter ## welche Features wurden implementiert ##### Eigene Karte/Raumplan aus Android photo gallery laden - [ ] Karte und zugehörige Scans unter Namen abspeichern - [ ] Galerie bisheriger Karte - [ ] Zum erneuten Zugriff auf alte Karten - [ ] Löschen/umbenennen alter Karten ##### Scan anhand von gpslocation (Outdoorscan) ### Dafür implementiert - [ ] Datenbank - [ ] UI - [ ] Karte mit Navigation - [ ] Laden eines Raumplans in die Anwendung - [ ] Sowohl neue Karten als auch bereits verwendetet Karten - [ ] Markieren der Aktuellen Position auf der Karte - [ ] Scannen der WLAN netze in der Umgebung - [ ] Speichern der Gescannten Daten - [ ] Exportieren der Daten in JSON und bereitstellung von Export API - [ ] Standardfunktionen wie Löschen und Umbenennen einer Karte ### Zukünftige Ziele - [ ] Analyse der Daten auf externen Gräten - [ ] Basierend auf der Analyse der Daten ausgabe für optimierungen # Ausformulierungen ## 1.Einleitung >Bei dem Projekt handelt es sich um die Entwicklung einer Android App zur Analyse und Protokollierung von WLAN-Netzen. Die Nutzenden sind mit dieser App in der Lage von unterschiedlichen Standpunkten verschiedene Daten, wie SSID oder stärke eines umliegenden Netzes, zu erfassen. Dadurch können diese ermitteln an welcher Position das Internet gut beziehungsweise schlecht ist. Ziel dieses Projekts soll es sein, dass Nutzende die gesammelten Daten exportieren können damit Freifunk Darmstadt diese weiter verwenden kann, um das WLAN zu verbessern. <br><br><br> Ein schlechter WLANempfang kann viele Gründe haben. Ein im Keller stehender Router hat kaum eine Chance den oder die Nutzer:in im Obergeschoss zu erreichen. Hier kann bereits ein richtig positionierter Accesspoint aushelfen. Wo sollte dieser am besten aufgestellt werden? <br> Aber auch an Orten, an denen von vielen Routern eine hohe Signalstärke empfangen wird, gibt es Probleme. Beispielsweise kann es durch mehrere Router, die auf dem gleichen Kanal funken, zu einer Interferenz kommen. Sie behindern sich gegenseitig. <del>Der oder die Nutzer:in müsste also lediglich den Funkkanal ändern. Welcher Kanal liefert in diesem Fall das beste Ergebnis?</del> Dieses Problem ließe sich durch das Ändern von Einstellungen oder Positionierung des Routers verbessern.<br> Um die Gründe für solche und weitere Probleme festzustellen wird eine Anwendung benötigt, welche sämtliche WLANdaten in diesen Problemzonen sammelt, um aus diesen zu einem späteren Zeitpunkt ein Muster auslesen zu können. Unsere Anwendung, welche wir im Umfang des Bachelorpraktikums 2021/22 entwickeln, übernimmt das Sammeln sämtlicher verfügbaren WLANdaten, wie zum Beispiel die SSID, Frequens und die Stärke der WLANs<del>Das sammeln der verfügbaren WLANdaten aus der Umgebung übernimmt unsere Anwendung, welche wir im Umfang des Bachelorpraktikums 2021/22 geschrieben.</del> ## 2. Motivation >Aufgrund dessen kann es zu einem schlechten Interneterlebnis führen. Freifunk Darmstadt möchte diesem Problem entgegen wirken. Die App dafür als Grundlage. Ziel dieser App soll es sein die umliegenden WLAN-Netze zu protokollieren und diese zu exportieren. Freifunk Darmstadt kann dann diese Daten weiterverwenden, um auf Grundlage davon die Parameter am Router zu optimieren. Dadurch soll das Wifi verbessert werden, sodass das Interneterlebnis verbessert wird. ## 3. Freifunk Unser Auftraggeber ist Freifunk Darmstadt, eine Hochschulgruppe des Chaos Computer Clubs Darmstadt. Ihr Ziel es ist flächendeckendes und kostenfreies WLAN in Darmstadt, zu ermöglichen. Dieses Vorhaben wird unterstützt durch Privatpersonen, die einen Teil ihrer Bandbreite für die Öffentlichkeit zur Verfügung stellen. Um das zu gewährleisten ist Freifunk auf eine optimale Einstellung Ihrer Router angewiesen. ## 4. Einsatzgebiet / Zielgruppe >Unterstützer von Freifunk, welche bei der Optimierung von Freifunk WLANs helfen wollen. Freifunk beabsichtigt aus den von unserer App gesammelten Daten Optimierungsmöglichkeiten automatisiert erarbeiten. Sobald auch dieses Projekt abgeschlossen ist, wird beabsichtigt die Anwendung auch zur Optimierung von privaten WLAN Netzwerken zur Verfügung stellen. <br><br> Zielgruppe der App sind daher primär die Unterstützer von Freifunk Darmstadt, die bereit sind Daten von umliegenden WLAN-Netzwerken zu sammeln und diese Freifunk Darmstadt zur Verfügung zu stellen. Nach Vollendigung des Projektes, sowie der Implementierung der Visualisierung der Daten ist geplant die App öffentlich zur Verfügung zu stellen, sodass jeder die App ohne Einschränkungen nutzen kann. Die App kann dann auch zum privaten Gebrauch genutzt werden, um feststellen zu können, wo das WLAN im eigenen Haushalt gut bzw. schlecht ist und wie man die Verbindungsqualität verbessern kann. <br><br> >Die Rolle, die unser Projekt in dieser Angelegenheit spielt ist es, sämtliche Daten der Router, die an einer bestimmten Stelle erfasst werden können, zusammen mit dem Standort abzuspeichern, sodass man genau kartographieren kann, an welchen Stellen welche Router wie gut empfangbar sind. Mit Hilfe dieses Wissens kann man durch externe Programme analysieren, wie genau die einzelnen Router im Detail eingestellt werden müssen, um den optimal möglichen Empfang sicherzustellen. Diese externen Programme zur Analyse, sowie die visuelle Darstellung der empfangenen WLAN Daten sind nicht Teil unseres Projekts. Unsere App kann einerseits von Freifunk verwendet werden um die eben beschriebenen Optimierungen vorzunehmen, andererseits aber auch von Privatpersonen, die bei sich zu Hause überprüfen wollen an welchen Stellen sie mehr oder weniger Empfang haben, als an anderen Stellen. Um die App zu bedienen sind keine besonderen Vorkenntnisse vonnöten, daher ist sie für jeden geeignet, der ein Android Smartphone besitzt, wobei nur die Versionen Android 8 bis Android 12 unterstützt sind. Für eine Unterstützung bis Android 6 war der Marktanteil nicht aureichend groß um eine relativ aufwändige Erweiterung zu rechtfertigen. Wie die allermeisten Android Apps ist auch unsere in der Sprache Kotlin geschrieben. ## 7. Android/Kotlin Wir entwickeln unsere Anwendung als Applikation für mobile Endgeräte, die mit Android-Versionen 8.0.0 bis 12.0.0 betrieben werden. Hierbei haben wir uns für Android-Version 8 als untere Grenze entschieden, da mehr als 80% der aktiven Android-Geräte diese oder eine neuere Version verwenden. Eine niedrigere Version hätte zu einem deutlich erhöhten Arbeitsaufwand geführt, während dies nur geringe Vorteile in der Kompatibilität bringt. Wir haben uns dafür entschieden unsere Anwedung für ein mobiles System zu schreiben, da es bei der Nutzung unserer Anwendung wichtig ist den Scan von verschiedenen Positionen aus zu starten, weshalb mobile Endgeräte in diesem Anwendungsgebiet praktikabler sind. Eine iOS-App ist hierbei nicht infrage gekommen, da diese einen schlechteren Zuganz zu den Ergebnissen eines WLANscans bietet. Die Umsetzung unserer Anwendung geschieht in Kotlin, da Android nur eine Java-Bytecode-Schnittstelle bereitstellt. Somit ist es nur möglich Android-Anwendungen in Kotlin oder Java zu programmieren. Da Kotlin von Google für die Anwendungsentwicklung empfohlen wird und wir als Gruppe die Sprache Kotlin erlernen wollten haben wir uns in der Gruppe für Kotlin entschieden, um unsere Anwendung zu entwickeln. <br><br> >Im Ramen unseres Projektes entwickeln wir eine Android App, da unsere Anwendung auf möglichst vielen verschiedenen mobilen Endnutzergeräten laufen soll. Wir haben uns dafür entschieden eine Android App zu entwickeln, da Android uns bessere Möglichkeiten bereit stellt, auf die Daten der Umgebenden WLAN-Netze zuzugreifen, als es API von iOS zulässt. <br><br> >[...], wobei nur die Versionen Android 8 bis Android 12 unterstützt sind. Für eine Unterstützung bis Android 6 war der Marktanteil nicht aureichend groß um eine relativ aufwändige Erweiterung zu rechtfertigen. Wie die allermeisten Android Apps ist auch unsere in der Sprache Kotlin geschrieben. ## 8.Features, die implementiert wurden Wie bereits eingangs erwähnt kann man in unserer App Karten aus dem Gerätespeicher laden, um in diesen zu markieren an welcher Stelle gescannt werden soll. Die geladene Karte kann außerdem beliebig mit einfachem Wischen verschoben werden. Zoomen kann man, wie bei einem Smartphone üblich, indem man eine pinch Bewegung ausführt. Zu jeder Karte wird ein GPS Standort gespeichert, sodass man die Karten in etwa geographisch zueinander einordnen kann. Nachdem man einen Scan erfolgreich durchgeführt hat erscheint die Markierung andersfarbig auf der Karte, sodass man sehen kann, an welcher Stelle bereits gescannt wurde. Diese Markierungen lassen sich aber auch mit einem Schalter am unteren Bildschirmrand ausschalten. Um sich bereits verwendete Karten erneut anzusehen, gibt es eine Gallerie in der sich alle diese Karten mit Vorschaubild und Namen, den man jeder Karte beim laden geben muss, befinden. Wenn man sich in dieser Gallerie befindet, kann man außerdem einzelne Karte umbenennen oder löschen. Beim Löschen einer Karte werden alle gescannten Daten der Karte mitgelöscht. Man kann allerdings auch ohne eine Karte einen Scan ausführen, beispielsweise wenn man sich im Freien befindet. Dafür werden die Daten dann nur mit dem aktuellen GPS Standort gespeichert. Die Speicherstruktur für die wir uns entschieden haben ist eine SQLite Datenbank, in der für jede Karte die Daten mehrerer Scans gespeichert werden können, wobei die Daten eines Scans bereits aus mehreren empfangenen WLAN Netzen bestehen können. Die gespeicherten Daten können über ein Export Interface exportiert werden. ### 8.1 Verwenden einer Karte Die Nutzenden haben innerhalb der App die Möglichkeit eine Karte aus der Galerie des Androidgerätes zu laden. Die genutzte Karte sollte ein Raumplan des Gebäudes abbilden , damit die aktuelle Position im Gebäude markiert werden kann. ### 8.2 Wifi scan außerhalb eines Gebäudes Die Analyse der WLAN-Netze soll nicht darauf eingeschränkt sein, dass die Nutzenden sich innerhalb eines Gebäudes befinden müssen, sodass diese auf ein Raumplan angewiesen sind. Deshalb können die Nutzenden ihre Position auch anhand ihrer GPS-Position referenzieren. ### 8.3 Wifi scan Es werden folgende Daten gesammelt: Zeitpunkt des Scans, BSSID, SSID, die verschiedenen Frequenzen, WLAN-Stärke, Venue Name, ### 8.4 SQLite Datenbank Die Informationen über die Karte, sowie die dazu gesammelten WLAN-Daten, werden persistent in der App gespeichert damit beim verlassen der Anwendung kein Verlust der Daten entsteht. Dies wird durch die Nutzung einer SQLite-Datenbank realisiert. Hier werden die Kartennamen sowie GPS-Location des durch die Karte referenzierten Gebäudes. Des Weiteren werden die innerhalb der Karte gesammelten Daten zusammen mit den Kartennamen in einer Tabelle innerhalb der Datenbank gespeichert. ### 8.5 Export der Daten # FINALE VERSION #### Einleitung Ein schlechter WLAN-Empfang kann viele Gründe haben. Ein im Keller stehender Router hat kaum eine Chance die Nutzenden im Obergeschoss zu erreichen. Hier kann bereits ein richtig positionierter Accesspoint helfen. Wo sollte dieser am besten aufgestellt werden? Aber auch an Orten, an denen von vielen Routern eine hohe Signalstärke empfangen wird, gibt es Probleme. Beispielsweise kann es durch mehrere Router, die auf dem gleichen Kanal funken, zu einer Interferenz kommen. Sie behindern sich gegenseitig. Wie können diese Probleme durch das Ändern von Einstellungen verringert werden? #### Motivation Um die Gründe für solche und weitere Probleme festzustellen wird eine Anwendung benötigt, die sämtliche WLAN-Verbindungsinformationen in diesen Problemzonen sammelt, um aus diesen zu einem späteren Zeitpunkt ein Muster auslesen zu können. Unsere Anwendung, die wir im Rahmen des Bachelorpraktikums 2021/22 entwicken, übernimmt das Sammeln aller verfügbaren WLAN-Verbindungsinformationen, wie zum Beispiel die SSID, den Kanal und die Stärke der WLANs. #### Unsere Auftraggeber Unser Auftraggeber ist Freifunk Darmstadt, eine Hochschulgruppe des Chaos Computer Clubs Darmstadt. Ihr Ziel ist es flächendeckendes und kostenfreies WLAN in Darmstadt zu ermöglichen. Dieses Vorhaben wird unterstützt durch Privatpersonen, die einen Teil ihrer Bandbreite für die Öffentlichkeit zur Verfügung stellen. Um das zu gewährleisten, ist Freifunk auf eine optimale Einstellung ihrer Router angewiesen. #### Zielgruppe Wir entwickeln unsere App primär für die Unterstützer von Freifunk Darmstadt, die bereit sind Verbindungsinformationen von umliegenden WLAN-Netzwerken zu sammeln und diese Freifunk Darmstadt zur Verfügung zu stellen. Nach Vollendung unseres Projektes und der darauffolgenden Projekte, ist geplant die App der Öffentlichkeit zur Verfügung zu stellen. Die App kann dann auch von Privatpersonen genutzt werden, um feststellen zu können wie gut das WLAN im eigenen Haushalt ist, bzw. wie man die Verbindungsqualität verbessern kann. #### Verwendete Technologien Wir entwickeln unsere Anwendung als Applikation für mobile Endgeräte, die mit Android-Versionen 8 bis 12 betrieben werden. Hierbei haben wir uns für Android-Version 8 als untere Grenze entschieden, da mehr als 80% der aktiven Android-Geräte diese oder eine neuere Version verwenden. Eine niedrigere Version hätte zu einem deutlich erhöhten Arbeitsaufwand geführt, während dies nur geringe Vorteile in der Kompatibilität bringt. Android 12 ist aktuell die neuste Version. Wir haben uns dafür entschieden unsere Anwendung für ein mobiles System zu schreiben, da es bei der Nutzung unserer Anwendung wichtig ist den Scan von verschiedenen Positionen aus zu starten. Daher sind mobile Endgeräte in diesem Anwendungsgebiet praktikabler. Eine iOS-App ist hierbei nicht infrage gekommen, da diese einen schlechteren Zugang zu den Ergebnissen eines WLAN-Scans bietet. Die Umsetzung unserer Anwendung geschieht in Kotlin, da Android nur eine Java-Bytecode-Schnittstelle bereitstellt. Somit ist es nur möglich Android-Anwendungen in Kotlin oder Java zu programmieren. Kotlin wird von Google für die Anwendungsentwicklung empfohlen. Daher haben wir uns bei der Entwicklung unserer Anwendung für Kotlin entschieden. #### Implementierte Features In unserer Anwendung können die WLAN-Verbindungsinformationen der Umgebung gesammelt, gespeichert und exportiert werden. Hierfür ist es möglich eine Karte in die Anwendung zu laden und auf diesem die aktuelle Position auszuwählen. Anschließend kann ein WLAN-Scan gestartet werden, der alle verfügbaren Verbindungsinformationen sammelt und mit dem GPS Standort speichert. Alle gespeicherten Daten können über ein Export-Interface geteilt werden. Innerhalb der Kartenansicht kann auf smartphone-übliche Weise navigiert werden. Um mehrere Karten einander zuordnen zu können, wird jeweils ein GPS Standort gespeichert. Um einen Scan zu starten, muss ein Punkt auf der Karte gesetzt werden. Anschließend erscheint ein Button, über welchen ein neuer Scan gestartet werden kann. Mit Hilfe eines Schalters kann zwischen einem Einfach- und Multi-Scan gewechselt werden. Dies macht Sinn um in der späteren Analyse einen größeren Datensatz pro Position nutzen zu können. An jeder Position, an der bereits gescannt wurde, befindet sich ein blauer Punkt auf der Karte. Dies dient der besseren Orientierung beim Scannen. Bei Bedarf lassen sich die Markierungen über einen Schalter ausblenden. Zudem ist es möglich über eine Galerie auf alle bereits genutzten Karten erneut zuzugreifen. Jede Karte ist einem eindeutigen Namen und einem Vorschaubild zugeordnet. Außerdem kann hier eine Karte umbenannt oder mit allen zugehörigen Daten gelöscht werden. Aber auch das Scannen ohne Karte ist möglich. Hierfür wird ausschließlich der aktuelle GPS Standort zur Lokalisierung verwendet. Sämtliche Karten- und Scandaten werden in einer SQLite Datenbank persistent gespeichert. Für die spätere Analyse ist es möglich die gesammelten Daten über das implementierte Export-Interface in ein praktikables Format zu bringen. Bereits vordefiniert ist ein Export, welcher alle gesammelten Daten im JSON-Format ausgibt. #### Ausblick Auf unserem Projekt aufbauend möchte Freifunk Darmstadt weitere Projekte im Rahmen des Bachelorpraktikums anbieten. Geplant sind unter anderem die Analyse sowie Visualisierung der gesammelten Daten. https://gs.statcounter.com/os-version-market-share/android https://developer.android.com/reference/kotlin/android/net/wifi/ScanResult?hl=en //TODO: auch neue implementierte Features und schöner schreiben Scan gesammelte Daten: SSID, venueName, operatorFriendlyName, level, frequency, channelWidth, centerFreq0, centerFreq1, capabilities, timestamp, informationElements (ab API level 30) Datenbank: Tabelle für Kartenname und GPS-Location Tabelle für Kartenname, Position von gesetzten Markern, GPS-Location und Scandaten Tabelle für InformationElements

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully