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 ~