Google广告ID返回null

时间:2015-06-26 03:57:07

标签: android google-advertising-id

所以我创建了一个类来检索用户设备的Google广告ID。我仍然得到一个空指针。我遵循了这个Tarjan's strongly connected components algorithm

然而它仍然无效。这是我的班级代码

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;
        }

1 个答案:

答案 0 :(得分:-2)

我正在处理同样的问题。我找到了解决方案,但并不完美。

//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();