我想在我的Android应用程序中有两件事。
获取设备ID,然后打开具有此ID的网页。例如myserver.com/deviceId
我的主要java类看起来像这样:
package es.unican.CityInfo;
import android.os.Bundle;
import android.app.Activity;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.provider.Settings.Secure;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
WebView mywebview = (WebView) findViewById(R.id.webview);
mywebview.loadUrl("http://www.google.com");
//enabling Javascript
WebSettings webSettings = mywebview.getSettings();
webSettings.setJavaScriptEnabled(true);
//opening links in my webview. if you delete this line , any link pressed will cause the browser to start
mywebview.setWebViewClient(new WebViewClient());
}
}
为了获得设备ID,我读到我应该这样做:
import android.provider.Settings.Secure;
private String android_id = Secure.getString(getContext().getContentResolver(),
Secure.ANDROID_ID);
但是我不明白我应该放置android_id代码,因为我总是会收到错误。
错误是:
Multiple markers at this line:
- The method getcontext() is undefined for the type MainActivity
- Illegal modifier for parameter android_id; only final is permitted
答案 0 :(得分:2)
private String android_id; // declared on top of class
android_id = Secure.getString(getContentResolver(), Secure.ANDROID_ID); // called inside onCreate
答案 1 :(得分:2)
将错误行替换为:
String android_id = Secure.getString(this.getContentResolver(),Secure.ANDROID_ID);
答案 2 :(得分:2)
删除私有修饰符并且不使用getContext()而是使用getApplicationContext() 或者只是getContentResolver()
在你的onCreate()方法中:
String android_id = Secure.getString(getContentResolver(),Secure.ANDROID_ID);
答案 3 :(得分:1)
使用此行
String android_id = Secure.getString(this.getContentResolver(), Secure.ANDROID_ID);
由于您在方法中声明了字符串,因此它将在其中作用域。 您可以使用此方法获取活动上下文。
答案 4 :(得分:1)
更改代码行:
getContext to getBaseContext
答案 5 :(得分:0)
import android.provider.Settings.Secure;
String android_id = Secure.getString(getApplicationContext().getContentResolver(),Secure.ANDROID_ID);