[英]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.