2013-04-04 94 views
1

我想在我的Android應用程序中有2件事。如何在Android中獲取設備ID?

獲取設備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

你在哪裏調用這個方法(Secure.getString(...))?嘗試在setContentView(R.layout.activity_main)後調用它; – Gorets 2013-04-04 09:22:11

+0

我確實在那裏調用它。 – donparalias 2013-04-04 09:26:03

回答

2

替換這是你的錯誤行:

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

非常感謝您 – donparalias 2013-04-04 09:27:59

+0

您知道如何直接從我的手機獲取由此輸出的相同ID? (例如,我想獲得IMEI,我只需鍵入:*#06#) – AnixPasBesoin 2016-03-14 16:45:16

2
private String android_id; // declared on top of class 

android_id = Secure.getString(getContentResolver(), Secure.ANDROID_ID); // called inside onCreate 
1

使用此行

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

既然你宣佈它將在其內部範圍的一個方法中的字符串。 你可以通過使用這個獲得Activity上下文。

+0

你知道我怎麼才能直接從我的手機中獲得這個輸出的相同ID? (例如,我想獲得IMEI,我只需鍵入:*#06#) – AnixPasBesoin 2016-03-14 16:45:02

1

更改行代碼:

getContext to getBaseContext 
+0

我試過這個,它沒有修復錯誤。謝謝你的回答,儘管 – donparalias 2013-04-04 09:29:00

+0

然後使用android_id = Secure.getString(this.getContentResolver(),Secure.ANDROID_ID); – 2013-04-04 09:40:22

2

刪除private修飾,也沒有使用的getContext(),而不是使用getApplicationContext() 或只需在您的onCreate()方法中獲取ContentConolver()

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

你知道我怎樣才能直接從我的手機上獲得由此輸出的相同ID? (例如,我想獲得IMEI,我只需鍵入:*#06#) – AnixPasBesoin 2016-03-14 16:44:54

0
import android.provider.Settings.Secure; 

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