Beiträge von Ritchie
-
-
Hallo,
ich arbeite noch an dem Problem. Auch bei mir wird der Mount Punkt durch Nummern dargestellt.
Melde mich, wenn ich mehr weiss oder sogar eine Lösung habe.
Viele Grüße
R. -
Hallo Zusammen,
Wie kann man sicher den Path der zweiten externen SD Karte ermitteln. Der folgende Code gibt
leider nur den ExternalStorage Path der internen SD Karte (aber als Extern von Android angesehen).CodeFile extDrive= Environment.getExternalStorageDirectory(); String sSDCardPath=extDrive.getAbsolutePath();
Wenn ich im FileDialog "/storage" auswähle, sehe ich zwar die Dateien der SD Karte, wenn ich aber auf diesen Bereich schreibe, sind diese Einträge nur über diesen Path sichtbar und werden weiterhin auf der internen Karte abgelegt.Ich bekomme immer nur den Path der internen SD Karte.
Viele Grüße
R. -
Hi Jogimuc,
danke für den Hinweis.
Ich habe dann den folgenden Code eingefügt und bei Programmstart aufgerufen.
Permission RequestViele Grüße
R. -
Hallo Jogimuc,
danke für den Hinweis.
Ich musste das Modul "filepicker" in mein Projekt kopieren (Festplatte).
danach habe ich in der Datei "Settings.grade" den Eintraghinzugefügt.
in meiner "Project-Master" Datei habe ich dann den Eintrag der Dependencies erweitert. (die beiden unteren)
Codedependencies { classpath 'com.android.tools.build:gradle:3.1.2' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.4' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1' }
In der Projekt-Datei meines Hauptprojekt habe ich dann die Dependencies abgeändert.
Codedependencies { ... api project(':filepicker') // implementation 'com.github.angads25:filepicker:1.1.1' .. }
Danach nochmals das Project "sync" gemacht und ich habe jetzt die Möglichkeit das Modul zu ändern.Und das war die Änderung. Jetzt macht das Modul, was ich will.
Codepublic void setProperties(DialogProperties properties) { if (mDialog == null){ if( this.properties != null){ this.properties=properties; } }else{ mDialog.setProperties(properties); } }
Viele Grüße
R. -
Hallo Zusammen,
ich vermute einen Fehler in einem github Modul, welches ich verwende.
(https://github.com/Angads25/android-filepicker)Leider ist diese Module bei meiner Art der Einbindung (so beschrieben bei dem Modul) schreibgeschützt.
Wie kann ich ein solches Module lokal bei mir einbinden und gleichzeitig das Modul ändern können.
Ich will dann evtl. dem Entwickler meine Lösung zukommen lassen.Viele Grüße
R. -
Hallo Lukas,
ich würde dann einfach zwischendurch das Programm im Simulator oder Handy deinstallieren.
Dann werden auch die gespeicherten Werte mit gelöscht. Dann kannst Du bei gleichen Namen auch andere Datentypen hinterlegen.Viele Grüße
R. -
Hallo,
ich habe mir die ganze Sache nochmals genau durchgelesen und auch das Beispiel (es gibt dann doch eins im Quellcode) angeschaut.
Hierbei habe ich dann meinen Fehler gefunden.Hier die geänderten Zeilen. Hier die Klassendefinition um "implements Preference.OnPreferenceChangeListener" erweitert.
Code@TargetApi(Build.VERSION_CODES.HONEYCOMB) public static class DataSyncPreferenceFragment extends PreferenceFragment implements Preference.OnPreferenceChangeListener {
und dann die entsprechende Routine einfügen (Ausschnitt einer Eingabe)Code
Alles anzeigen@Override public boolean onPreferenceChange(Preference preference, Object o) { String sPath=""; SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getActivity()); SharedPreferences.Editor editor = preference.getEditor(); if(preference.getKey().equals("pref_videoPath_key")){ String value=(String)o; String arr[]=value.split(":"); for(String path:arr){ sPath=path; } editor.putString("pref_videoPath_key",sPath); Toast.makeText(getActivity(),sPath,Toast.LENGTH_SHORT).show(); Preference mVideoPathPref = (Preference) getPreferenceScreen().findPreference("showrecordVideoPath_key"); mVideoPathPref.setSummary(sPath); } editor.commit(); return false; }
Danach hat die ganze Sache korrekt gearbeitet.Derzeit kämpfe ich mit dem Setzen der Dialogeigenschaften, was eigentlich so gehen sollte.
CodeFilePickerPreference videoDialog=(FilePickerPreference)findPreference("pref_videoPath_key"); final DialogProperties videoproperties=new DialogProperties(); videoproperties.selection_mode = DialogConfigs.SINGLE_MODE; videoproperties.selection_type=DialogConfigs.DIR_SELECT; videoproperties.offset=new File("/sdcard"); videoproperties.root=new File("/sdcard"); videoproperties.error_dir=new File("/mnt"); videoproperties.extensions =null; // videoDialog.setProperties(videoproperties); videoDialog.setOnPreferenceChangeListener(this);
Nur crashed das Programm, wenn ich versuche die ".setProperties(videoproperties) aufzurufen.
So mache ich die Interne Abfrage vor Zugriffe auf "SD Card" zusätzlich.
Viele Grüße
R. -
Hi,
versuche mal folgendes:
CodeSharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); SharedPreferences.Editor editor = preferences.edit(); editor.putString("pref_AppName_key", "Hello"); editor.commit();
Ansonsten kann ich nur den Aussagen von "jogimuc" zustimmen, das Du Deinen Quellcode nochmals über die Funktion "Code" nochmals einfügst.
Die Funktion in der obersten Zeile Deiner Eingabe und sieht so "</>" aus. Ohne eine "saubere" Darstellung des Quellcode ist es sehr schwer für andere Dir zu helfen.Viele Grüße
R. -
-
Hallo,
hier meine XML-Definition:
Code
Alles anzeigen<com.github.angads25.filepicker.view.FilePickerPreference xmlns:app="http://schemas.android.com/apk/res-auto" android:key="pref_videoPath_key" android:title="@string/pref_description_moviesPath_title" android:summary="@string/pref_description_moviesPath_title" android:defaultValue="/sdcard:/mnt" app:offset_dir="/mnt/sdcard/android" app:error_dir="/mnt" app:root_dir="/sdcard" app:selection_mode="multi_mode" app:selection_type="dir_select" app:extensions="txt:pdf:"/>
und hier die SettingsActivity.Java
C
Alles anzeigenpackage com.rwenzel.DashCAM; import android.annotation.TargetApi; import android.content.Context; import android.content.Intent; import android.content.res.Configuration; import android.os.Build; import android.os.Bundle; import android.preference.PreferenceActivity; import android.app.ActionBar; import android.preference.PreferenceFragment; import android.view.MenuItem; import java.util.List; /** * A {@link PreferenceActivity} that presents a set of application settings. On * handset devices, settings are presented as a single list. On tablets, * settings are split by category, with category headers shown to the left of * the list of settings. * <p> * See <a href="http://developer.android.com/design/patterns/settings.html"> * Android Design: Settings</a> for design guidelines and the <a * href="http://developer.android.com/guide/topics/ui/settings.html">Settings * API Guide</a> for more information on developing a Settings UI. */ public class SettingsActivity extends PreferenceActivity { /** * Helper method to determine if the device has an extra-large screen. For * example, 10" tablets are extra-large. */ private static boolean isXLargeTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setupActionBar(); } /** * Set up the {@link android.app.ActionBar}, if the API is available. */ private void setupActionBar() { ActionBar actionBar = getActionBar(); if (actionBar != null) { // Show the Up button in the action bar. actionBar.setDisplayHomeAsUpEnabled(true); } } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == android.R.id.home) { SettingsActivity.this.finish(); return true; } return super.onOptionsItemSelected(item); } /** * {@inheritDoc} */ @Override public boolean onIsMultiPane() { return isXLargeTablet(this); } /** * {@inheritDoc} */ @Override @TargetApi(Build.VERSION_CODES.HONEYCOMB) public void onBuildHeaders(List<Header> target) { loadHeadersFromResource(R.xml.pref_headers, target); } /** * This method stops fragment injection in malicious applications. * Make sure to deny any unknown fragments here. */ protected boolean isValidFragment(String fragmentName) { return PreferenceFragment.class.getName().equals(fragmentName) || GeneralPreferenceFragment.class.getName().equals(fragmentName) || DataSyncPreferenceFragment.class.getName().equals(fragmentName); } /** * This fragment shows general preferences only. It is used when the * activity is showing a two-pane settings UI. */ @TargetApi(Build.VERSION_CODES.HONEYCOMB) public static class GeneralPreferenceFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref_general); setHasOptionsMenu(true); } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == android.R.id.home) { startActivity(new Intent(getActivity(), SettingsActivity.class)); return true; } return super.onOptionsItemSelected(item); } } /** * This fragment shows data and sync preferences only. It is used when the * activity is showing a two-pane settings UI. */ @TargetApi(Build.VERSION_CODES.HONEYCOMB) public static class DataSyncPreferenceFragment extends PreferenceFragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref_data_sync); setHasOptionsMenu(true); } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == android.R.id.home) { startActivity(new Intent(getActivity(), SettingsActivity.class)); return true; } return super.onOptionsItemSelected(item); } } }
Bei einer Auswahl eines Verzeichnis wird der Wert nicht in den Einstellungen angezeigt.
Z.B. Ich wähle ein Verzeichnis aus und beende die Einstellungen.
Wenn ich dann wieder in die Einstellungen gehe, sind die Ursprungseinstellungen vorhanden.Laut der Wiki des Moduls soll man die folgende Methode überschreiben:
Code@Override public boolean onPreferenceChange(Preference preference, Object o) { if(preference.getKey().equals("your_preference_key")) { ... } return false; }
Nur weiss ich nicht, wo ich diese Methode einbinden soll.
Und hier noch der Teil der Berechtigungen:
Code<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE_EXTERNAL_STORAGE" />
Viele Grüße
R. -
Hi,
ich vermute mal, das dieses File Picker keine Fragmente unterstützt.
Habe das Tool erstmal wieder entfernt und suche eine andere Variante.
Viele Grüße
R. -
Hallo Zusammen,
ich möchte diesen Filepicker in meine App einbinden.
https://github.com/Angads25/an…icker/wiki/ImplementationDas klappt soweit ganz gut, jedoch kann ich die Eingabe derzeit nicht in einer
Variable ablegen, da ich das Ereignis "public boolean onPreferenceChange(Preference preference, Object o)"
nicht angelegt bekomme.Die Klasse "public class SettingsActivity extends PreferenceActivity" zeigt mir keine entsprechende Override Funktion an,
wenn ich "Generate / Override Methode" erzeugen will.Ebenso in "public static class GeneralPreferenceFragment extends PreferenceFragment {" zeigt mir auch nicht
die entsprechende Funktion.Ich verwende die Basis SettingActivity, welche mir von Android Studio vorgeschlagen wurde, bei dem erstellen einer neuen Activity.
Gibt es ein Beispiel, da mir der Teil "Implementation" nicht weiter geholfen hat.
Auch scheint man mit diesem Tool nicht alle SD Card auswählen (bei mir jedenfalls) zu können. Auf dem Handy (reale Hardware),
kann ich nicht die externe SD Karte auswählen (eingesteckte Karte).Viele Grüße
R. -
Hallo Zusammen,
Die Anweisung hier klappt (eigentlich nichts anderes was jogimuc erklärt hat:
https://github.com/saki4510t/U…/howto_debug_over_networkWenn das Handy in der Anzeige verschwindet, einfach nochmals das Kommando
adb connect <IP Adresse>:5555
eingeben. Dann kommt das Device (Handy) wieder und man kann via Wifi sich verbinden.
(getestet mit Linux)
Viele Grüße
R.
-
Hi,
nur zur Info. Nach einer Menge Stecker wechsel und entsprechenden Diagnose Infos einbringen habe ich den Fehler gefunden.
Man muss die Auflösung anpassen. Nur wäre eine Lösung mit Remote Degging besser für die Zukunft. Das will ich irgendwie noch in den Griff bekommen.
Viele Grüße
R. -
Mein Handy will ich nicht rooten.
Ich werde jetzt mein Glück erstmal ohne Debuggen via Wifi / Bluetooth versuchen.
Da werde ich wohl einzeln Dialoge in die Anwendung einbauen müssen, um zu sehen, wo das Programm für die USB Kamera Darstellung hackt.Vielen Dank für Deine Hilfe.
Gruss R.
-
Hi,
habe ich gerade installiert. Leider verwendet diese Tool den Modelnamen als "Hostnamen". Dieser hat ein "_" im Namen, welcher von meiner Firewall als Hostname nicht möglich ist. Ohne diesen kann ich keine Verbindung zu dem Handy aufbauenn
Ansonsten sieht es nach einer guten Lösung aus. Nur kann ich meine Infrastruktur meines Netzwerk deshalb nicht ändern. Trotzdem danke für diesen Hinweis. Vielleicht gibt es das ja auch für Bluetooth, das geht an meinem Netzwerk vorbei.
Viele Grüße
R. -
Hallo,
neuer Bluetooth Adapter eingebaut. Rechner und Handy gepaired.
Zitat von jogimucOb ein USB Hub geht kann ich dir nicht sagen teste es mal. Villeicht geht ein debugging über Bluetooth.
androiddocs.com/training/wearables/apps/bt-debugging.htmlCode$ adb forward tcp:4444 localabstract:/adb-hub adb server version (39) doesn't match this client (36); killing... * daemon started successfully * $ adb connect localhost:4444 connected to localhost:4444 $ adb -e logcat adb server version (39) doesn't match this client (36); killing... * daemon started successfully * - waiting for device -
Ich konnte einen Connect via adb herstellen. Hierbei musste ich adb selber installieren.
Leider kann ich mit Android Studio (3.1) mein Handy nicht als verfügbares Device zum Debuggen sehen.
Wo liegt der Fehler, muss ich in Android Studio auch noch einiges konfigurieren?
Ich konnte in den Debugging Settings nicht finden, was auf Bluetooth hinweist.Viele Grüße
R. -
Danke für den Tip.
Könnte eine Möglichkeit sein.
Leider wurde der Bluetooth Adapter aus der Schublade nicht von meinem System erkannt.
(kubuntu)Ich probiere dann mal die W-LAN Methode. Kann was schwierig werden, da ich eine Firewall laufen habe.
-
Hi,
hier meine App, welche ich bereits als Basis versucht habe zu testen:
https://github.com/saki4510t/UVCCamera
https://github.com/openxc/android-webcamHier wollte ich prüfen, ob USB Kameras bereits von den Android API's erkannt werden.
https://github.com/googlesamples/android-Camera2VideoIch habe ein Autoradio, welches auf Android 8.0 basiert. (China-RNS siehe hier Radio ) und die Installation
von Apps aus dem Play Store erlaubt (oder eigenen Programmen). Es verhält sich also wie ein Android Handy,
nur mit begrenzten Sensoren.Auch ist hierbei ein Problem, das ich die Beispiele nicht debuggen kann, da der Android Emulator keine USB Devices unterstützt (meine ich zumindest). Auch kann ich nicht die Beispiele im Handy debuggen, da ich ja hierfür den USB Port für das Debuggen benötige, wo die Kamera angeschlossen wird ?
Würde hier ein USB Hub funktionieren ?
Ich habe ein Samsung S7 und habe die USB Funktion UTG nur mit dem samsungeigenen Adapter ans rennen bekommen. Ein einfacher Adapter hat hier nicht funktioniert.
Ich bin für jede Hilfe dankbar.
Viele Grüße