A solução para o apk de atualização acima do android8.0 não abre a interface de instalação

     O código escrito antes de atualizar o apk foi adaptado para a versão do android7.0. Depois que o download do android8.0 e do android9.0 foi bem-sucedido, a tela piscou por um tempo e não pulou para a interface de instalação do sistema. Em seguida, verifique o informações e saiba que o android8.0 foi adicionado As novas medidas de segurança não permitem a instalação de aplicativos que não foram verificados pelo Google play , por isso temos que nos adaptar aos sistemas 8.0 e 9.0.

A primeira etapa é escrever permissões no arquivo xml

  • Adicione as seguintes permissões ao arquivo de manifesto:
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/> 

Verificou-se que não tinha utilidade e que não havia permissão para instalar aplicativos desconhecidos.

Determine se você obteve permissão para instalar aplicativos desconhecidos 

Na classe PackageManager no 8.0, o método canRequestPackageInstalls() é adicionado para verificar se a instalação de aplicativos desconhecidos foi obtida.

if (Build.VERSION.SDK_INT>=26){
    boolean hasInstallPermission = isHasInstallPermissionWithO(mContext);
    if (!hasInstallPermission) {
        startInstallPermissionSettingActivity(mContext);
        retornar;
    }

}

@RequiresApi(api = Build.VERSION_CODES.O)
private boolean isHasInstallPermissionWithO(contexto de contexto){
    if (contexto == null){
        retorna falso;
    }
    return context.getPackageManager().canRequestPackageInstalls();
}

O método startInstallPermissionSettingActivity é: abra a interface para configurar e instalar aplicativos de fontes desconhecidas. É melhor escrever o nome do pacote do apk e pular diretamente para a interface de permissão do apk atual

 

/**
 * Abra a interface para configurar e instalar aplicativos de fontes desconhecidas
 * @param contexto
 */
@RequiresApi(api = Build.VERSION_CODES.O)
private void startInstallPermissionSettingActivity(contexto de contexto) {
    if (contexto == null) {
        retornar;
    }
    Intenção intenção = new Intenção();
    // Obtenha o URI do pacote apk atual e defina-o na intenção (esta etapa permite que a "interface de configuração de permissão de aplicativo desconhecido" exiba apenas os itens de configuração do aplicativo atual)
    Uri pacoteURI = Uri.parse("pacote:" + context.getPackageName());
    intent.setData(packageURI);
    //Definir as ações de salto para aplicativos desconhecidos em diferentes versões
    if (Build.VERSION.SDK_INT >= 26) {
        //intent = new Intent(android.provider.Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES,packageURI);
        intent.setAction(android.provider.Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
    } outro {
        intent.setAction(android.provider.Settings.ACTION_SECURITY_SETTINGS);
    }
    ((Atividade) contexto).startActivity(intenção);
    Toast.makeText(mContext, "Ative as permissões de instalação de aplicativos desconhecidos", Toast.LENGTH_SHORT).show();
}

Desta forma, os telefones celulares acima de 8.0 serão adaptados com sucesso ~

 

Acho que você gosta

Origin blog.csdn.net/qq_22576071/article/details/97010225
Recomendado
Clasificación