Android Code Snippet Advertising id

Status
Not open for further replies.

Erel

Administrator
Staff member
Licensed User
1. Add a reference to FirebaseAdMob.
2. Add to manifest editor:
B4X:
CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)
3. Add to main module:
B4X:
Private Sub GetAdvertisingId As ResumableSub
   Dim jo As JavaObject = Me
   jo.RunMethod("GetAdvertisingId", Null)
   Wait For AdvertisingId_Ready (Success As Boolean, Id As String)
   Return Id
End Sub


#if Java
import java.util.concurrent.Callable;
import com.google.android.gms.ads.identifier.AdvertisingIdClient;
import com.google.android.gms.ads.identifier.AdvertisingIdClient.Info;

public static void GetAdvertisingId() {
   BA.runAsync(processBA, mostCurrent, "advertisingid_ready", new Object[] {false, ""}
       , new Callable<Object[]>() {
                   @Override
                   public Object[] call() throws Exception {
                       String id = AdvertisingIdClient.getAdvertisingIdInfo(mostCurrent).getId();
                       return new Object[] {true, id};
                   }
               }); }
#End If
Usage example:
B4X:
Wait For (GetAdvertisingId) Complete (Id As String)
If Id <> "" Then
   Log(Id)
End If
Q: What is the advertising id?

A: https://support.google.com/googleplay/android-developer/answer/6048248?hl=en

The IDE will show a warning about FirebaseAdMob not being used. You can discard this warning with:
B4X:
#IgnoreWarnings: 32
 
Last edited:

Star-Dust

Expert
Licensed User
Thanks Erel and really very useful.
I had tried to do something like this by copying the example Java code but without result.
 

Filippo

Expert
Licensed User
The procedure is clear, what I do not understand is what do I do with the "advertising id"?

B4X:
Wait For (GetAdvertisingId) Complete (Id As String)
If Id <> "" Then
   Log(Id)
End If
 

Filippo

Expert
Licensed User
Maybe I do not see the forest for the trees (German proverb). :(
My question is: where do I build this ID, should the admod-id be replaced with it?
 

Star-Dust

Expert
Licensed User
Maybe I do not see the forest for the trees (German proverb). :(
My question is: where do I build this ID, should the admod-id be replaced with it?
I would use it as alternative to identifying ID.
The user rarely resets it because he often does not even know it exists.
So it could be used to identify the device.

PS. I did not understand the proverb
 
Last edited:

JackKirk

Well-Known Member
Licensed User
I've managed to steer clear of Firebase up till now but looks like I am going to be forced to use it to get a unique user Id in Android 10+ instead of IMEI.

Could somebody spell out what Erel means in post #1 by:

1. Add a reference to FirebaseAdMob.

Thanks...
 
Last edited:

pompierecattivo

Member
Licensed User
Hello,
probably i did something wrong, but i dont know how...

After add parts as Erel describe on first post, i've tried to compile. Unfortunately compiling ends by a timeout. No explication about. The only thing i see is a over use (i think) of cpu and memory on activity manager window. I attach a screnshot.
Sorry for bad english, any idea appreciate.

View attachment 89320
 

drgottjr

Active Member
Licensed User
this doesn't answer "why" you have the problem, but have you tried to reset the timeout? i think it defaults to 1 minute, but you can increase it
 

Attachments

pompierecattivo

Member
Licensed User
Thanks for answer!
My timeout option was set at 180sec (in the past i updated this value from 1 minute). Now is set for 5 min waiting but still timing out.
The strange thing is my app compiled and run correctly before...
 

Attachments

pompierecattivo

Member
Licensed User
Ok,
appear to be something linked to manifest... I try to put my changes step by step. I'm started from manifest where i add the line Erel suggest on first post. The error appear just for this... (of course i also added Firebase AdMob library) I'll Attach my manifest, i know i'm not a good programmer, but any help appreciate.


Manifest:
'This code will be applied to the manifest file during compilation.
'You do not need to modify it in most cases.
'See this link for for more information: http://www.basic4ppc.com/forum/showthread.php?p=78136
AddPermission(android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS)
AddPermission(android.permission.FOREGROUND_SERVICE)
AddPermission(android.permission.CAMERA)
AddPermission(android.permission.FLASHLIGHT)
AddPermission(android.permission.ACCESS_WIFI_STATE)
AddPermission(android.permission.CHANGE_WIFI_STATE)
AddManifestText(
<uses-sdk android:minSdkVersion="16" />
<uses-sdk android:targetSdkVersion="29" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" android:protectionLevel="signature" />
<supports-screens android:largeScreens="true"
    android:normalScreens="true"
    android:smallScreens="true"
    android:anyDensity="true"/>)
   
SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")

AddApplicationText(
  <provider
  android:name="android.support.v4.content.FileProvider"
  android:authorities="$PACKAGE$.provider"
  android:exported="false"
  android:grantUriPermissions="true">
  <meta-data
  android:name="android.support.FILE_PROVIDER_PATHS"
  android:resource="@xml/provider_paths"/>
  </provider>
)
AddApplicationText(
<uses-library
      android:name="org.apache.http.legacy"
      android:required="false" />
)
CreateResource(xml, provider_paths,
   <external-files-path name="name" path="shared" />
)
CreateResourceFromFile(Macro, FirebaseAnalytics.GooglePlayBase)

'End of default text.
 
Last edited:

pompierecattivo

Member
Licensed User
Hello Jorge
unfortunately still no news...
I've tryed multidex on main module. And also download Dexer.jar as Erel suggest here but no luck.
I've search on b4a website for a running example for get advertsing id to check if its run and see difference, but nothing found..
 
Status
Not open for further replies.
Top