簡體   English   中英

Android 應用程序在安裝時不要求權限

[英]Android App not asking for permissions when installing

我在我大學的 IT 部門工作,我們開發了一個應用程序,可以為 eduroam WiFi 安裝正確的設置(也許您聽說過)。

但是,我在我自己的 LG G4 上使用 Android 6.0 運行它時遇到問題。 安裝編譯后的 *.apk 時,它不會要求任何權限,盡管它們是在 AndroidManifest.xml 中設置的。 它適用於所有以前的 Android 版本。

現在是否必須在運行時請求權限?

如果您的目標 SDK 版本是 23,那么您需要在運行時請求“危險”權限。

如果是這種情況,那么如果您轉到Settings > Apps > "Your app" > Permissions您應該能夠看到未授予任何Settings > Apps > "Your app" > Permissions

如果您還不想實施新系統,那么您可以將目標 sdk 版本降低到 22 以獲得舊的權限系統。 不過,您仍然可以使用 sdk 版本 23 進行編譯。

有關更多信息,請參閱文檔

如果你想在運行時請求權限,你應該在你的應用程序中寫一個特殊的請求。 像這樣的東西:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        createPermissions();
}
public void createPermissions(){
    String permission = Manifest.permission.READ_SMS;
    if (ContextCompat.checkSelfPermission(getContext(), permission) != PackageManager.PERMISSION_GRANTED){    
        if(!ActivityCompat.shouldShowRequestPermissionRationale(getActivity(), permission)){
              requestPermissions(new String[]{permission}),
                        SMS_PERMISSION);
        }
    }
}

如果用戶運行的是 Android 6.0(API 級別 23)或更高版本,則用戶必須在運行應用程序時授予您的應用程序權限。 如果您一次向用戶提出大量權限請求,您可能會讓用戶不知所措並導致他們退出您的應用程序。 相反,您應該在需要時請求權限。

在某些情況下,一項或多項權限可能對您的應用程序絕對必要。 在應用程序啟動后立即請求所有這些權限可能是有意義的。 例如,如果您制作了一個攝影應用程序,該應用程序將需要訪問設備相機。 當用戶第一次啟動應用程序時,他們不會因為被要求獲得使用相機的許可而感到驚訝。 但是,如果同一個應用程序還具有與用戶的聯系人共享照片的功能,則您可能不應該在首次啟動時請求 READ_CONTACTS 權限。 相反,等到用戶嘗試使用“共享”功能,然后請求許可。

如果您的應用程序提供了教程,則在教程序列的末尾請求應用程序的基本權限可能是有意義的。

來源/參考https://developer.android.com/training/permissions/usage-notes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM