无法获得唯一的Android设备ID

时间:2015-06-30 03:42:33

标签: java android

每个人都在谈论这段代码:

import android.provider.Settings.Secure;

private String android_id = Secure.getString(getContext().getContentResolver(), Secure.ANDROID_ID);

当我写这篇文章时,会出现如下错误:

"方法getContext()未定义类型Bridge"

我该如何解决?

4 个答案:

答案 0 :(得分:0)

这也应解决问题,

String android_id = Secure.getString(this.getContentResolver(),Secure.ANDROID_ID);

答案 1 :(得分:0)

您是否尝试过使用getApplicationContext()而不是getContext()?

package de.vogella.android.deviceinfo;

    import android.app.Activity;
    import android.os.Bundle;
    import android.provider.Settings.Secure;
    import android.widget.Toast;

    public class ShowDeviceInfo extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            String deviceId = Secure.getString(this.getContentResolver(),
                    Secure.ANDROID_ID);
            Toast.makeText(this, deviceId, Toast.LENGTH_SHORT).show();
        }
    } 

http://blog.vogella.com/2011/04/11/android-unique-identifier/

这些链接可能有所帮助:

http://developer.android.com/reference/android/app/Activity.html

getApplication() vs. getApplicationContext()

Difference between getContext() , getApplicationContext() , getBaseContext() , getContext(), and "this"

答案 2 :(得分:0)

首先,您应该将Context的实例传递到Bridge班级 为此,您可以将Context传递给构造函数或任何您想要的位置。

如您所知,每个方法都属于Java中的某个类。因此,当您使用getContext()调用方法而不是某个对象时,这等于调用this.getContext()。因此,您尝试从现在正在操作的类的实例(Bridge)中调用该方法,该类没有定义这样的方法。这就是你得到错误

的原因
  

对于Bridge

类型,未定义getContext()方法

答案 3 :(得分:0)

我有同样的问题。

那是我的类没有扩展AppCompatActivity,因为getContentResolver()是该类中的一种方法。