2011-03-14 40 views
2

我有一個應用程序可以在具有手機功能但沒有手機功能的設備上運行。這裏是我的一些疑問:支持具有手機功能並且不具備手機功能的Android設備

1)我能支持這兩種類型的設備。 2)對於具有電話功能的設備,我需要啓用通話功能。和沒有電話功能的設備,我將禁用呼叫功能。

我不看好<用戶權限>和<用戶功能>概念很清楚,有沒有指定的手機<用戶功能>

+3

'使用-feature',據我所知,是唯一真正有限制與不足的用戶硬件在Android市場上查看和下載您的應用程序。在這種情況下,因爲您希望沒有調用功能的人使用您的應用程序,所以您不希望要求電話硬件根據需要設置'uses-feature'元素。 – 2011-03-14 04:58:41

回答

0

好辦法,我不知道一個非常簡單的方法要做到這一點,但你可能想要使用下面的方法來獲取手機的電話號碼,如果它返回null,這可能意味着手機功能不可用,它是一個平板電腦或類似的東西(android powered微波爐?:p)

private String getMyPhoneNumber() { 
    TelephonyManager mTelephonyMgr; 
    mTelephonyMgr = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE); 
    return mTelephonyMgr.getLine1Number(); 
} 

另外,一定要在Android清單文件上添加權限「android.permission.READ_PHONE_STATE」。祝你好運:)

13

如果你不通過市場發佈你的應用程序,如果你不關心遵循推薦的做法,那麼你應該只需要<uses-permission>標籤的應用程序使用任何權限。但是,要讓正確的設備通過Market訪問應用,您需要使用<uses-permission><uses-feature>標籤。

<uses-permission>是要求您的應用程序有權採取某種行動。在準備安裝應用程序時,用戶可以查看所請求的權限並決定是否繼續安裝。例如,如果應用程序試圖在未聲明「android.permission.CALL_PHONE」權限的情況下撥打電話,則嘗試將失敗。有關基本平臺權限的列表,請參閱here

<uses-permission>也被市場用於隱含特徵要求。如果您的應用使用需要電話硬件的權限,則市場將假定需要電話硬件,並且該應用不適用於缺乏電話硬件的設備。

<uses-feature>可以用來通知市場要麼某一特徵需要或者該特徵期望但不要求。該標籤將覆蓋<uses-permission>暗示的任何功能。例如,如果您指定<uses-feature android:name="android.hardware.telephony" android:required="false" />,則無論請求什麼權限,都需要電話號碼而不是

要了解<uses-permission><uses-feature>如何相互作用以創建市場過濾器,請參閱here

要在運行時檢查功能是否可用,它看起來像你可以使用PackageManager.hasSystemFeature()

Context context; // Some object, such as Activity, that extends Context 
// ... 
boolean hasTelephony = context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_TELEPHONY); 
if (hasTelephony) { 
    // ... 
} 
else { 
    // ... 
} 
+0

我想通過市場部署應用程序,但仍然希望在設備中使用電話功能(如果可用),並在設備無法撥打電話時禁用通話功能。 – Avnish 2011-03-14 11:00:09

+0

然後你需要清單中的''和''(帶有android:required =「false」)標籤。在你的代碼中,像'hasSystemFeature()'這樣的示例應該可以工作,儘管我還沒有嘗試過。 – erichamion 2011-03-14 13:21:27

+0

我想通過市場部署應用程序,我必須從android 1.5支持。我認爲android 1.5不支持uses-feature的「android-required」屬性。它顯示在編譯時在包'android'「meassage中找不到」屬性需要的資源標識符「。有沒有其他的方式來支持這個ondroid-1.5。 – Avnish 2011-05-26 09:34:56

相關問題