App will Zugriff auf "Phone Calls", obwohl dies nicht im Manifest angegeben ist

  • Antworten:11
  • Bentwortet
Sven Woltmann
  • Admin
  • Staff
  • Forum-Beiträge: 1.922

23.12.2009, 00:03:16 via Website

Und noch eine Frage:

In meiner manifest.xml gebe ich lediglich eine "uses-permission"-Zeile an:

1<uses-permission android:name="android.permission.INTERNET" />

Dennoch verlangt die App bei der Installation zusätzlich die folgenden Rechte:

- Phone calls (read phone state and identity)
- Storage (modify/delete SD card contents)

Hat jemand eine Ahnung warum das so ist und ob ich das abschalten kann?

Viele Grüße,
Sven

— geändert am 23.12.2009, 00:03:47

Svens Java-Entwickler-Blog: https://www.happycoders.eu

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

23.12.2009, 00:21:45 via Website

Hi Sven,

das resultiert aus der Tatsache, dass Du an irgendeiner Stelle Deines Codes einen Zugriff auf eine Funktion ausübst, die diese Berechtigungen voraussetzt.

Früher wurde das mit entsprechenden Exeptions quittiert .. seit 1.6 wohl leider nicht mehr. Warum auch immer ...

Die Frage wäre, warum die App das verlangt .. vor allem bei der Installation? Normalerweise verlangt da gar niemand etwas sondern es wird nur darauf hingewiesen was die App an Rechten vorraussetzt bzw. verlangt, aufgrund DEINER Angaben im Manifest.

Darüber hinaus ist mir das nicht bekannt und würde ein scannen des Codes voraussetzen ... das passiert aber eigentlich nur mit dem Manifest soweit ich das verinnerlicht habe.

lg Voss

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

23.12.2009, 00:51:02 via Website

Hat jemand eine Ahnung warum das so ist und ob ich das abschalten kann?

Du compilierst die App gegen SDK 1.5 (Target)?
Dann nimm mal 1.6 stattdessen und setze minSDK entsprechend, wenn es auch unter 1.5 laufen soll.

In 1.5 gab es die genannten Permissions noch nicht, und darum werden die auf neueren Systemen (aus kompatibilitätsgründen) automatisch ergänzt.

Antworten
Sven Woltmann
  • Admin
  • Staff
  • Forum-Beiträge: 1.922

23.12.2009, 11:24:42 via Website

and dev
Du compilierst die App gegen SDK 1.5 (Target)?

Ja.

and dev
Dann nimm mal 1.6 stattdessen und setze minSDK entsprechend, wenn es auch unter 1.5 laufen soll.

In 1.5 gab es die genannten Permissions noch nicht, und darum werden die auf neueren Systemen (aus kompatibilitätsgründen) automatisch ergänzt.

Das klingt plausibel. Ich habe die installierten Apps durchgeschaut:
Ca. die Hälfte verlangt die genannten Permissions. Das sind dann wohl alles Apps, die gegen 1.5 compiliert wurden.

Ich habe sie nun gegen 1.6 compiliert und im Manifest targetSdkVersion="4" angegeben.
Trotzdem verlangt er immer noch die genannten Permissions :(
Ich werd mal weiter rumprobieren und die Lösung hier posten, wenn ich sie gefunden habe.

— geändert am 23.12.2009, 11:25:13

Svens Java-Entwickler-Blog: https://www.happycoders.eu

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

23.12.2009, 11:25:48 via Website

READ_PHONE_STATE gab es schon ab API Level 1....
WRITE_EXTERNAL_STORAGE allerdings erst ab API Level 4

lg Voss

Antworten
Gelöschter Account
  • Forum-Beiträge: 5.136

23.12.2009, 11:27:42 via Website

Hmm ...

schmeisst er irgendwelche Exeptions im LOGCAT

lg Voss

Antworten
Sven Woltmann
  • Admin
  • Staff
  • Forum-Beiträge: 1.922

23.12.2009, 11:45:06 via Website

Jörg Voss
schmeisst er irgendwelche Exeptions im LOGCAT

Nein, die App läuft einwandfrei.

Ich habe mich jetzt mal durch einige englischsprachige Foren gelesen. Das Problem ist bekannt. Es ist so wie and dev schreibt. Die Permissions wurden bis SDK 1.5 automatisch gegranted, ab SDK 1.6 nur nach Bestätigung durch den User. Daher bittet jede 1.5 App auf einem 1.6 System um diese Permissions, da sie ansonsten nicht laufen könnte.

In einem Forum gibt es den Hinweis, dass es mit Target-Version 1.6 nur dann funktioniert, wenn man die App über den Market installiert. Nicht aber, wenn man die APK direkt installiert.

Sobald ich die App im Market habe, kann ich das hoffentlich bestätigen ;)

Svens Java-Entwickler-Blog: https://www.happycoders.eu

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

23.12.2009, 12:20:06 via Website

Ich habe mich jetzt mal durch einige englischsprachige Foren gelesen.

Ich meine das im Zusammenhang mit dem SDK1.6 Update seinerzeit direkt bei Google gelesen zu haben.


In einem Forum gibt es den Hinweis, dass es mit Target-Version 1.6 nur dann funktioniert, wenn man die App über den Market installiert. Nicht aber, wenn man die APK direkt installiert.

Hm, das fällt dann aber in die Kategorie Bugs, oder weiß jemand einen plausiblen Grund für diese Unterscheidung?


Sobald ich die App im Market habe, kann ich das hoffentlich bestätigen ;)

Wie weit biste denn schon damit?

Antworten
Mario Zechner
  • Forum-Beiträge: 79

06.01.2010, 00:56:42 via Website

Ich habe das selbe "Problem" bei einer meiner Apps und konnte bis jetzt noch keine Lösung dazu finden. Mal weitersuchen. Verschreckt ja die armen User.

Antworten
Sven Woltmann
  • Admin
  • Staff
  • Forum-Beiträge: 1.922

21.01.2010, 13:21:38 via Website

Ich kann jetzt bestätigen, dass das Problem nur auftritt, wenn man die APK direkt installiert.

Installiert man die App aus dem Market werden diese Rechte nicht mehr benötigt.

Svens Java-Entwickler-Blog: https://www.happycoders.eu

Antworten
San Blarnoi
  • Forum-Beiträge: 2.545

21.01.2010, 20:32:41 via Website

Ich kann jetzt bestätigen, dass das Problem nur auftritt, wenn man die APK direkt installiert.

Installiert man die App aus dem Market werden diese Rechte nicht mehr benötigt.

Gut zu wissen, wieder was gelernt :)

Antworten
Jack-In-Da-Box
  • Forum-Beiträge: 1.569

22.01.2010, 00:35:12 via Website

Sven Woltmann
Ich kann jetzt bestätigen, dass das Problem nur auftritt, wenn man die APK direkt installiert.

Installiert man die App aus dem Market werden diese Rechte nicht mehr benötigt.

Dann schau mal unter "Einstellungen > Anwendungen > Anwendungen verwalten > AndroidPIT"...
Da wird angezeigt: Netzwerkkommunikation, Anrufe & Speicher.
:P

Aber wen juckts *lach*

Antworten