如何在Android中获取设备ID?

时间:2013-04-04 09:16:24

标签: android webview device

我想在我的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

6 个答案:

答案 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);