i want to get Advertising ID for my app, which i have no success.
import androidx.ads.identifier.AdvertisingIdClient;
import androidx.ads.identifier.AdvertisingIdInfo;
public class addUtilsJava extends AsyncTask<Context, String, String> {
static String TAG = "addUtilsJava";
private String getIdThread(Context context) {
AdvertisingIdInfo adInfo = null;
try {
adInfo = AdvertisingIdClient.getAdvertisingIdInfo(context).get();
} catch (Exception exception) {
exception.printStackTrace();
}
if (adInfo != null) {
final boolean isLAT = adInfo.isLimitAdTrackingEnabled();
return adInfo.getId();
}
return null;
}
@Override
protected String doInBackground(Context... contexts) {
return getIdThread(contexts[0]);
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
if (s != null)
Log.d(TAG, s);
}
}
it throw exception that suggesting me androidx.ads.identifier.AdvertisingIdNotAvailableException: No Advertising ID Provider available
. i tried with 2 mobile phone and emulator all with same result.
thanks in advance
ps: i check the solution provided in android doc but it won't work for me https://developer.android.com/training/articles/ad-id
and i rather have a solution that don't require dependency
Try this Code..for me working..
import com.google.android.gms.ads.identifier.AdvertisingIdClient;
import com.google.android.gms.common.GooglePlayServicesNotAvailableException;
import com.google.android.gms.common.GooglePlayServicesRepairableException;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
AsyncTask<Void, Void, String> task = new AsyncTask<Void, Void, String>() {
@Override
protected String doInBackground(Void... params) {
AdvertisingIdClient.Info idInfo = null;
try {
idInfo = AdvertisingIdClient.getAdvertisingIdInfo(getApplicationContext());
} catch (GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
} catch (GooglePlayServicesRepairableException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String advertId = null;
try{
advertId = idInfo.getId();
}catch (NullPointerException e){
e.printStackTrace();
}
return advertId;
}
@Override
protected void onPostExecute(String advertId) {
Toast.makeText(getApplicationContext(), advertId, Toast.LENGTH_LONG).show();
}
};
task.execute();
}
}
build.gradle added dependencies
dependencies {
implementation 'com.google.android.gms:play-services-ads-lite:18.1.1'
}