Google 广告 ID 返回 null
Google advertising id returning null
所以我创建了一个 class 来检索用户设备的 Google 广告 ID。但是我仍然得到一个空指针。我关注了这个 question
但是还是不行。这是我的 class 代码
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.google.android.gms.ads.identifier.AdvertisingIdClient.Info;
import com.google.android.gms.ads.identifier.AdvertisingIdClient;
public class GAID extends AppCompatActivity {
public String mUserId;
public GAID() {
new Thread(new Runnable() {
public void run() {
try {Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(getApplicationContext());
mUserId = adInfo.getId();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gaid);
}
public String getGAID() {
return mUserId;
}
我正在处理同样的问题。我找到了解决方案,但它并不完美。
//retrieving GIDA
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) {
mUserId = advertId;
collectedGIDA =true;
Toast.makeText(getApplicationContext(), mUserId , Toast.LENGTH_SHORT).show();
}
};
task.execute();
所以我创建了一个 class 来检索用户设备的 Google 广告 ID。但是我仍然得到一个空指针。我关注了这个 question
但是还是不行。这是我的 class 代码
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import com.google.android.gms.ads.identifier.AdvertisingIdClient.Info;
import com.google.android.gms.ads.identifier.AdvertisingIdClient;
public class GAID extends AppCompatActivity {
public String mUserId;
public GAID() {
new Thread(new Runnable() {
public void run() {
try {Info adInfo = AdvertisingIdClient.getAdvertisingIdInfo(getApplicationContext());
mUserId = adInfo.getId();
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_gaid);
}
public String getGAID() {
return mUserId;
}
我正在处理同样的问题。我找到了解决方案,但它并不完美。
//retrieving GIDA
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) {
mUserId = advertId;
collectedGIDA =true;
Toast.makeText(getApplicationContext(), mUserId , Toast.LENGTH_SHORT).show();
}
};
task.execute();