2016-01-20 51 views
1

我需要根據手機中插入的SIM運營商來定製我的Android應用的用戶界面。例如,如果我插入airtel,我需要用黃色發射器圖標獲取黃色UI。對於沃達豐我需要紫色的發射器圖標得到紫色的用戶界面。基於網絡運營商的Android用戶界面定製

是否可以根據手機中的操作員指向不同的資源文件夾?或者如何自定義主題?還有其他方法可以實現嗎

+0

在這裏看看如何獲​​得載體名稱 - http://stackoverflow.com/questions/29938430/how-to-detect-network-operators-programmatically-on-android – Tasos

+0

看看這個[post](http://androidexample.com/How_to_get_SIM_details_in_android/question_answer.php?view=qad&token=33) – Mohit

回答

2

您可以通過使用獲得承運人的名稱下面的代碼

TelephonyManager manager = (TelephonyManager) 
getSystemService(Context.TELEPHONY_SERVICE); 

String carrierName = manager.getNetworkOperatorName(); 

而且一旦你有名字,你可以使用預定義的名稱字符串比較字符串,然後改變顏色,因此

+0

好的,謝謝。如果我想根據運營商更改整個資源文件夾。那可能嗎? – Ajitha

+0

我不認爲你可以。您必須手動更改所有圖像 –

3

是的,它只是可能!

  • 首先創建多個佈局xml文件(對於每個操作員)。

  • 然後確定您正在使用哪個操作符。

    TelephonyManager telephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
    String opName = telephonyManager.getNetworkOperatorName(); 
    
  • 現在,根據運算符的名稱應用佈局。

    if(opName.equals("vodafone")){ 
         setContentView(R.layout.vodafone_layout); 
    } 
    

使用上面討論的方法中,可以有多個(每操作者潛在不同的佈局結構和部件),用於每個操作員的佈局。如果您只想爲每個運營商更換主題,則在致電setContentView()之前,更好的方法是使用setTheme()

+0

,並且可以動態更改啓動器圖標嗎? – Ajitha

+0

@Ajitha http://stackoverflow.com/questions/1103027/how-to-change-an-application-icon-programmatically-in-android –

+0

上述鏈接僅更改應用程序托盤中的快捷方式圖標而不是appdrawer圖標:( – Ajitha