Android Question PhoneId.GetDeviceId

sigster

Active Member
Licensed User
Longtime User
Hi

I am try to get GetDeviceId but I get this error

B4X:
*** Service (starter) Create ***
** Service (starter) Start **
** Activity (main) Create, isFirst = true **
main_activity_create (java line: 336)
java.lang.SecurityException: getDeviceId: Neither user 10214 nor current process has android.permission.READ_PHONE_STATE.
    at android.os.Parcel.readException(Parcel.java:1693)
    at android.os.Parcel.readException(Parcel.java:1646)
    at com.android.internal.telephony.ITelephony$Stub$Proxy.getDeviceId(ITelephony.java:5149)
    at android.telephony.TelephonyManager.getDeviceId(TelephonyManager.java:915)
    at anywheresoftware.b4a.phone.Phone$PhoneId.GetDeviceId(Phone.java:425)
    at b4a.example.main._activity_create(main.java:336)
    at java.lang.reflect.Method.invoke(Native Method)
    at anywheresoftware.b4a.BA.raiseEvent2(BA.java:186)
    at b4a.example.main.afterFirstLayout(main.java:102)
    at b4a.example.main.access$000(main.java:17)
    at b4a.example.main$WaitForLayout.run(main.java:80)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6776)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
** Service (widgetservice) Start **
** Service (widgetservice) Start **
** Service (widgetservice) Start **
** Service (widgetservice) Start **
 

Attachments

  • PhoneID.zip
    6.7 KB · Views: 436

DonManfred

Expert
Licensed User
Longtime User
I am try to get GetDeviceId but I get this error
If you set targetSDK to 23+ then you NEED to use Runtimepermissions!
Read phone state is a dangerous permission.

Use runtimepermissions lib and request permission (see tutorial).

Or set targetSDK to 22.
 
Upvote 0

sigster

Active Member
Licensed User
Longtime User
I set the targetSDK to 22.
C:\Android\android-sdk\platforms\android-22\android.jar

in Manifester Editor I Add
AddPermission(android.permission.READ_PHONE_STATE)

I get the same error

PS
I am using Galalaxy s8 Plus
 
Upvote 0

sigster

Active Member
Licensed User
Longtime User
Thanks for the help

Finish to fix this , the app ask for permission will the app always ask for permission for first time ?

1. C:\Android\android-sdk\platforms\android-22\android.jar

2.Manifester Editor
AddPermission(android.permission.READ_PHONE_STATE)

3. runtimepermissions lib

4. Activity_Create
rp.CheckAndRequest(rp.PERMISSION_READ_PHONE_STATE)

B4X:
Sub Process_Globals
    'These global variables will be declared once when the application starts.
    'These variables can be accessed from all modules.
    Dim rp As RuntimePermissions
End Sub

Sub Activity_PermissionResult (Permission As String, Result As Boolean)
    Log($"Permission: ${Permission}
Result: ${Result}"$)


End Sub
 
Upvote 0
Top