繁体   English   中英

无法获取唯一的Android设备ID

[英]Can't get the unique Android device ID

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

import android.provider.Settings.Secure;

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

当我写这篇文章时,会出现类似以下的错误:

“对于类型Bridge,未定义方法getContext()”

我该如何解决?

这也应该解决问题,

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

您是否尝试过使用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()与getApplicationContext()

getContext(),getApplicationContext(),getBaseContext(),getContext()和“ this”之间的区别

首先,您应该将Context实例传递给Bridge类。
为此,您可以将Context传递给构造函数,也可以传递给任何您想要的地方。

如您所知,每个方法都属于Java中的某个类。 因此,当您不是从某个对象调用该方法时,就像使用getContext() ,这等同于调用this.getContext() 因此,您尝试从当前正在操作的类的实例( Bridge )中调用该方法,该类尚未定义此类方法。 这就是为什么你会得到错误

对于类型Bridge,未定义方法getContext()

我遇到过同样的问题。

那是我的类没有扩展AppCompatActivity因为getContentResolver()是驻留在该类中的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM