AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Permissions der eigenen App öffnen

Ein Thema von QuickAndDirty · begonnen am 13. Jun 2022 · letzter Beitrag vom 15. Jun 2022
Antwort Antwort
Seite 1 von 2  1 2   
mjustin

Registriert seit: 14. Apr 2008
3.011 Beiträge
 
Delphi 2009 Professional
 
#1

AW: Permissions der eigenen App öffnen

  Alt 13. Jun 2022, 14:13
Delphi-Quellcode:
  Const
    cACTION_APPLICATION_DETAILS_SETTINGS = 'android.settings.APPLICATION_DETAILS_SETTINGS';
  AppID := JStringToString(TAndroidHelper.Context.getApplicationContext.getPackageName);
  Intent := TJIntent.JavaClass.init( StringToJString(cACTION_APPLICATION_DETAILS_SETTINGS) );
  Intent.setData(StrToJURI('package:'+ AppID ));
  Intent.setFlags(TjIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  ResolveInfo := SharedActivity.getPackageManager.resolveActivity(Intent, 0);
  if assigned(ResolveInfo) then
    SharedActivity.startActivity(Intent);
Anstatt der selbst definierten Konstante sollte auch ein Auslesen der definierten Konstante funktionieren:

android.provider.Settings.JavaClass.APPLICATION_DETAILS_SETTINGS

Für Android entwickle ich nur mit Java, aber der sonstige Code sieht ok aus
Michael Justin
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.058 Beiträge
 
Delphi 12 Athens
 
#2

AW: Permissions der eigenen App öffnen

  Alt 13. Jun 2022, 15:20
Delphi-Quellcode:
  Const
    cACTION_APPLICATION_DETAILS_SETTINGS = 'android.settings.APPLICATION_DETAILS_SETTINGS';
  AppID := JStringToString(TAndroidHelper.Context.getApplicationContext.getPackageName);
  Intent := TJIntent.JavaClass.init( StringToJString(cACTION_APPLICATION_DETAILS_SETTINGS) );
  Intent.setData(StrToJURI('package:'+ AppID ));
  Intent.setFlags(TjIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  ResolveInfo := SharedActivity.getPackageManager.resolveActivity(Intent, 0);
  if assigned(ResolveInfo) then
    SharedActivity.startActivity(Intent);
Anstatt der selbst definierten Konstante sollte auch ein Auslesen der definierten Konstante funktionieren:

android.provider.Settings.JavaClass.APPLICATION_DETAILS_SETTINGS
Aber wo in Delphi bekomme ich diese Konstante her?
Andreas
Nobody goes there anymore. It's too crowded!

Geändert von QuickAndDirty (13. Jun 2022 um 15:35 Uhr)
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.011 Beiträge
 
Delphi 2009 Professional
 
#3

AW: Permissions der eigenen App öffnen

  Alt 13. Jun 2022, 15:32
Aber wo in Delphi bekomme ich diese Konstante her?
Vermutlich durch ein "uses JSettings", so wie es auch bei JIntent schon gemacht wird:

 Intent := TJIntent.JavaClass.init( JSettings.JavaClass.APPLICATION_DETAILS_SETTINGS );

Beispiel von SO https://stackoverflow.com/a/42686077/80901)

if aResultCode = TJActivity.JavaClass.RESULT_OK then RESULT_OK ist zwar eine numerische Konstante, aber ich bin optimistisch dass es auch mit Strings geht
Michael Justin

Geändert von mjustin (13. Jun 2022 um 15:37 Uhr)
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.058 Beiträge
 
Delphi 12 Athens
 
#4

AW: Permissions der eigenen App öffnen

  Alt 13. Jun 2022, 15:59
Ja geht mit Android.JNI.Provider
Delphi-Quellcode:
procedure TPermissions.OpenAppSettings;
{$IFDEF ANDROID}
  var
    Intent: JIntent;
    ResolveInfo: JResolveInfo;
    AppId:String;
{$ENDIF}
begin
{$IFDEF ANDROID}
  AppId := JStringToString(TAndroidHelper.Context.getApplicationContext.getPackageName);
  Intent := TJIntent.JavaClass.init( tJSettings.JavaClass.ACTION_APPLICATION_DETAILS_SETTINGS ); // tJSettings aus Unit Android.JNI.Provider
  Intent.setData(StrToJURI('package:'+AppId));
  Intent.setFlags(TjIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK);
  ResolveInfo := SharedActivity.getPackageManager.resolveActivity(Intent, 0);
  if assigned(ResolveInfo) then
    SharedActivity.startActivity(Intent);
{$ENDIF}
end;
Gibts eine Bestpractice um den Benutzer mit zuteilen das er Location Berechtigungen Aktivieren soll? Ich meine jetzt wo Android 12 es einem vermiest das in der App zu erfragen muss man ja den User dazu bewegen das über die Einstellungen der App zu tätigen.
Andreas
Nobody goes there anymore. It's too crowded!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.553 Beiträge
 
Delphi 12 Athens
 
#5

AW: Permissions der eigenen App öffnen

  Alt 13. Jun 2022, 16:42
Das wird jetzt auch immer wichtiger.

Neuerdings nimmt Android Apps alle Rechte weg, wenn man sie länger nicht geöffnet hatte.
Blöd, bei Apps, die unsichtbar im Hintergrund ihre arbeit leisten und man sie nur bei Problemen öffnet (also hoffentlich sehr selten), aber die ohne Rechte nicht mehr arbeiten können.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Permissions der eigenen App öffnen

  Alt 13. Jun 2022, 17:32
Das wird jetzt auch immer wichtiger.

Neuerdings nimmt Android Apps alle Rechte weg, wenn man sie länger nicht geöffnet hatte.
Blöd, bei Apps, die unsichtbar im Hintergrund ihre arbeit leisten und man sie nur bei Problemen öffnet (also hoffentlich sehr selten), aber die ohne Rechte nicht mehr arbeiten können.
Nur so eine Idee, da ich kein Android supporte fehlt mir da die Erfahrung.
Ich würde einmal wöchentlich (oder was auch immer angemessen ist) eine Art Splash-Screen aufpoppen lassen, der wiederum alles an Rechte einfordert was dein Programm zur Laufzeit benötigt.
So würde der OS Aktivität vorgegaukelt und man kann davon ausgehen das die Tokens nicht ablaufen.
Das wäre jedenfalls mein Beitrag dazu, gibt aber bestimmt elegantere Wege :-]
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.553 Beiträge
 
Delphi 12 Athens
 
#7

AW: Permissions der eigenen App öffnen

  Alt 13. Jun 2022, 17:42
Nur dass sich hier z.B. bereits Viele beschweren, dass gewisse Virenscanner sich ständig "sinnlos" in den Vordergrund drängeln, obwohl sie aktuell eigentlich "garnichts" zu sagen haben.

Mich würde es bestimmt auch nerven, wenn da wöchentlich der SplashScreen kommt.


Hatte auch schon geschaut, ob man z.B. für einzelne Apps dieses Verhalten nicht deaktivieren könnte.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#8

AW: Permissions der eigenen App öffnen

  Alt 13. Jun 2022, 18:57
[OT]
Neuerdings nimmt Android Apps alle Rechte weg, wenn man sie länger nicht geöffnet hatte.
Sehr blöd bei Warnapps wie bspw. Nina.
Das müssten eigentlich alle Beteiligten wissen, interessiert aber scheinbar niemand. Aber man wird die nächste Katastrophe sicher schonungslos aufklären.
[/OT]
Gruß, Jo
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.011 Beiträge
 
Delphi 2009 Professional
 
#9

AW: Permissions der eigenen App öffnen

  Alt 14. Jun 2022, 06:33
Ja geht mit Android.JNI.Provider
Delphi-Quellcode:
  ...
  Intent := TJIntent.JavaClass.init( tJSettings.JavaClass.ACTION_APPLICATION_DETAILS_SETTINGS ); // tJSettings aus Unit Android.JNI.Provider
Ja, das führende "T" hatte ich übersehen, ist es denn in der Unit tatsächlich ein kleines t ? Alle Klassennamen beginnen in der Regel mit einem "T", z.B. auch in der gleichen Zeile das TJIntent.

Ist zwar nur eine Kleinigkeit, aber bei einem Code Review würde ich da ein Fragezeichen dranschreiben
Michael Justin
  Mit Zitat antworten Zitat
QuickAndDirty

Registriert seit: 13. Jan 2004
Ort: Hamm(Westf)
2.058 Beiträge
 
Delphi 12 Athens
 
#10

AW: Permissions der eigenen App öffnen

  Alt 14. Jun 2022, 09:12
Ja geht mit Android.JNI.Provider
Delphi-Quellcode:
  ...
  Intent := TJIntent.JavaClass.init( tJSettings.JavaClass.ACTION_APPLICATION_DETAILS_SETTINGS ); // tJSettings aus Unit Android.JNI.Provider
Ja, das führende "T" hatte ich übersehen, ist es denn in der Unit tatsächlich ein kleines t ? Alle Klassennamen beginnen in der Regel mit einem "T", z.B. auch in der gleichen Zeile das TJIntent.

Ist zwar nur eine Kleinigkeit, aber bei einem Code Review würde ich da ein Fragezeichen dranschreiben
Ach, ja sorry. Ich habe keine einzige Zeile von dem Code selbst geschrieben (abgesehen vom Metacode). Ist ein haufen coding styles zusammen gewürflet. Mein Dank an all die verschiedenen Developerforen da draußen!

Ich überlege ob ich heute ne For schleife selbst programmiere mit im internet gefunden code drinnen.
Andreas
Nobody goes there anymore. It's too crowded!

Geändert von QuickAndDirty (14. Jun 2022 um 09:47 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz