2012-03-02 65 views
0

我的應用程序需要互聯網連接才能檢索經度和緯度。如果手機的網絡已關閉,如何在應用程序的開始處顯示一個彈出框?彈出框應該這樣說:如何在OnCreate中自動打開網絡?

您的網絡已禁用,現在啓用?

在此文本下方將放置一個按鈕,其中顯示「OK」,當用戶按下此按鈕時,WiFi或移動網絡將打開。

在此先感謝

+0

是不是顯示Toast並讓用戶打開網絡的最佳選擇? – kosa 2012-03-02 16:38:47

回答

2

你不應該自動打開WiFi爲您的用戶,我不知道,甚至有可能與移動網絡。

下面是一個示例代碼,它在onCreate方法的最後創建一個AlertDialog,並將其顯示給用戶。如果用戶想要啓用它,他將被轉發到Android無線設置屏幕,在那裏他可以手動啓用WiFi連接。

如果他點擊取消,應用程序將退出。但是,您可以根據自己的喜好對此行爲進行建模,這只是我如何完成此特定任務的一個示例。

@Override 
public void onCreate(final Bundle savedInstanceState) { 
    // your code 

    new AlertDialog.Builder(this) 
     .setMessage("Your network is disabled, enable now?") 
     .setTitle("Alert") 
     .setCancelable(false) 
     .setPositiveButton(android.R.string.ok, 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 
        // launch settings 
        Intent settings = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS); 
        startActivity(settings); 
       } 
      }) 
     .setNegativeButton(android.R.string.cancel, 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 
        dialog.dismiss(); 

        // finish activity 
        finish(); 
       } 
      }) 
     .show(); 
} 

編輯:

只是雙重檢查對Android開發者文檔(http://developer.android.com/reference/android/provider/Settings.html#ACTION_WIRELESS_SETTINGS)設置的意圖,他們告訴你,有時這種活動可能不存在:

活動操作:顯示設置以允許配置諸如Wi-Fi,藍牙和移動網絡之類的無線控制器 。在某些情況下, 匹配的活動可能不存在,因此請確保您的安全性不會受到 的影響。

+0

你有什麼想法_「你保護這個」嗎? – 2013-11-16 11:18:48