French Problèmes de permissions

Bastien Z

Member
Bonjour,

J'ai pour projet d'envoyer un SMS une application Android développé avec B4A.
Je sais qu'il y a énormément de topics qui ont été créé par rapport à ça, mais le problème que j'ai n'a pas eu sa réponse.

Pour envoyer un message, dans mon programme j'ai bien rajouté la ligne suivante dans le manifest Editor :
AddPermission(android.permission.SEND_SMS)

Lorsque je compile le programme, le logiciel me renvoie une erreur de permission.

Voici mon code :
B4X:
#Region  Project Attributes
    #ApplicationLabel: B4A Example
    #VersionCode: 1
    #VersionName:
    'SupportedOrientations possible values: unspecified, landscape or portrait.
    #SupportedOrientations: unspecified
    #CanInstallToExternalStorage: False
#End Region

#Region  Activity Attributes
    #FullScreen: False
    #IncludeTitle: True
#End Region

Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.

End Sub

Sub Globals
    'These global variables will be redeclared each time the activity is created.
    'These variables can only be accessed from this module.
    Dim Sms1 As PhoneSms
    Private Button1 As Button    
End Sub

Sub Activity_Create(FirstTime As Boolean)
    'Do not forget to load the layout file created with the visual designer. For example:
    Activity.LoadLayout("2")    
End Sub


Sub Button1_Click    
    Sms1.Send("0606691426","Android SMS test")
    Log("SMS Sent") 
End Sub

Sub Activity_Resume
End Sub

Sub Activity_Pause (UserClosed As Boolean)
End Sub

Et j'ai ce message d'erreur :
B4X:
Logger connecté à : ce071717f0aba0570b7e
--------- beginning of crash
--------- beginning of main
--------- beginning of system
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
** Activity (main) Resume **
main_button1_click (java line: 360)
java.lang.SecurityException: Sending SMS message: uid 10376 does not have android.permission.SEND_SMS.
    at android.os.Parcel.createException(Parcel.java:1966)
    at android.os.Parcel.readException(Parcel.java:1934)
    at android.os.Parcel.readException(Parcel.java:1884)
    at com.android.internal.telephony.ISms$Stub$Proxy.sendTextForSubscriber(ISms.java:1658)
    at android.telephony.SmsManager.sendTextMessageInternal(SmsManager.java:372)
    at android.telephony.SmsManager.sendTextMessage(SmsManager.java:350)
    at anywheresoftware.b4a.phone.Phone$PhoneSms.Send2(Phone.java:644)
    at anywheresoftware.b4a.phone.Phone$PhoneSms.Send(Phone.java:626)
    at b4a.example.main._button1_click(main.java:360)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:196)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:180)
    at anywheresoftware.b4a.BA.raiseEvent(BA.java:176)
    at anywheresoftware.b4a.objects.ViewWrapper$1.onClick(ViewWrapper.java:80)
    at android.view.View.performClick(View.java:7352)
    at android.widget.TextView.performClick(TextView.java:14177)
    at android.view.View.performClickInternal(View.java:7318)
    at android.view.View.access$3200(View.java:846)
    at android.view.View$PerformClick.run(View.java:27800)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7050)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)


Merci d'avance pour votre aide !
 

drgottjr

Expert
Licensed User
Longtime User
il n'est plus possible de faire distribuer dans le play store une app qui envoie des sms. alors, laissez tomber si ça etait le propos.
(il faudra faire usage d'un "intent" dans votre app. seule la dite "default sms" app peut envoyer des sms). en utilizant un "intent", ce
n'est plus question de demandes de permis.)

bon, s'il s'agit d'une app pour votre "consommation", il faudra non seulement mentionner le permis dans le manifest, mais aussi dans l'app meme,
moyannant les dits "runtime permissions"
https://www.b4x.com/android/forum/threads/runtime-permissions-android-6-0-permissions.67689/

qu'est-ce vous avez mis comme sdk? 26 ou plus haut? il est, peut-etre possible d'echapper aux permis en usant moins de 26. c'etait quand
les runtime permissions sont entres en vigueur. mais, de toute maniere, l'app ne sera pas admise dans le play store.
 

Bastien Z

Member
Bonjour,
Le projet n'est pas de mettre sur le playstore mais uniquement pour ma propre utilisation.
En réalité, c'est un projet que je dois faire avec l'université dans laquelle je suis, j'utilise donc le l'ordinateur de l'université et le logiciel qui a déjà été installé dessus. Donc je n'ai pas fait l'installation. De ce faite, je ne sais pas quelle version de SDK j'ai d'installé. Y a-t-il un moyen de le savoir ?

Le but de ce projet est de récupérer des informations puis de les envoyer vers un autre téléphone se trouvant à plusieurs mètres, voire centaine de mètres. C'est pour cela qu'il me faut utiliser le réseau GSM.
Excusez moi de pas avoir été assez clair dans la présentation du projet lors de sa création..

Merci d'avance !
 

drgottjr

Expert
Licensed User
Longtime User
c'est vous qui faites l'app? ou pas? si oui, regardez dans le manifest. le logiciel installe ailleurs n'a pas beaucoup a voir. c'est l'app dont nous parlons. si vous devez utiliser des sms, ou bien il faut un "intent" ou bien les "runtime permissions" ou bien (peut-etre) changez le sdk a, disons 19 (pour eviter ces permissions).
a vous de choisir. changez le sdk et faites un test. si ca ne va pas, regardons les runtime permissions (ce nest pas difficile). dernierement, faisons la chose avec
un intent. a vrai dire, c'est probablement le plus facile mais le moins optimise. tout depend de ce que vous etes chez vous avec. revenez quand vous aurez plus de nouvelles. des bonnes, on espere...

pd - ce test, c'est d'envoyer un sms, n'est pas? laissons la communication avec le serveur pour un autre jour. pour le moment, on doit savoir si vous pouvez reussir a envoyer un simple bon jour via sms. on ira a partir de ca
 

Attachments

  • sdk.jpg
    sdk.jpg
    18.9 KB · Views: 190

Bastien Z

Member
Bonjour,
Je vous met la capture d'écran du manifest editor. Si j'ai bien compris, à priori j'ai une version 5 du SDK.
J'ai essayé de modifier le SDK, d'en faire la mise à jour, mais ça a "cassé" B4A. C'est-à-dire que, à chaque fois que je voulais compiler le programme, B4A me renvoyait systématiquement une erreur d'artefact manquant...
Capture.PNG
 

yfleury

Active Member
Licensed User
Longtime User

Min 16 et target 28
 

drgottjr

Expert
Licensed User
Longtime User
c'est quoi, au juste, l'artefact manquant?
c'est comment le manifest modifié?
que dit le journal détaillant la compilation?
cette capture ne nous dit pas beaucoup. que prétend ton app?
 
Top