Android 8.0安装apk的实例代码

android 8.0安装apk需要请求未知来源权限

//xml配置
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/>
/**
 * 检测版本8.0
 */
public void checkOreo() {
  if (SdkVersionUtils.hasOreo()) {//8.0
    //判断是否可以直接安装
    boolean canInstall = getPackageManager().canRequestPackageInstalls();
    if (canInstall) {
      //rxpermissions请求权限
      mRxPermissions
          .request(Manifest.permission.REQUEST_INSTALL_PACKAGES)
          .subscribe(granted -> {
            if (granted) {
              //安装apk
              installApk();
            } else if (shouldShowRequestPermissionRationale(Manifest.permission.REQUEST_INSTALL_PACKAGES)) {
               //引导用户去打开权限
              Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
              startActivityForResult(intent, GET_UNKNOWN_APP_SOURCES);
            } else {
              Intent intent = new Intent(Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES);
              startActivityForResult(intent, GET_UNKNOWN_APP_SOURCES);
            }
          });
    } else {
      //安装apk
      installApk();
    }
  } else {
    //安装apk
    installApk()
  }
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  switch (requestCode) {
    case GET_UNKNOWN_APP_SOURCES:
      checkOreo();
      break;
  }
}

总结

以上所述是小编给大家介绍的Android 8.0安装apk的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

您可能感兴趣的文章:

  • Android studio 下的APK打包失败问题解决办法
  • Android安装apk文件并适配Android 7.0详解
  • Android 如何修改APK的默认名称
  • Gradle编译打包Android apk详细介绍
  • Android 使用jarsigner给apk签名的方法详细介绍
  • Android Apk去掉签名以及重新签名的方法
  • Android通过aapt命令获取apk详细信息(包括:文件包名,版本号,SDK等信息)
(0)

相关推荐

  • Android安装apk文件并适配Android 7.0详解

    Android安装apk文件并适配Android 7.0详解 首先在AndroidManifest.xml文件,activity同级节点注册provider: <provider android:name="android.support.v4.content.FileProvider" android:authorities="${applicationId}.file_provider" android:exported="false"

  • Gradle编译打包Android apk详细介绍

    Gradle编译打包Android apk详细介绍 理解Gradle构建过程,解读Android Gradle插件的配置 阅读本文一定是要使用过Gradle生成apk,文中不会讲如何安装运行Gradle,如有需要可先看文末的参考文章. APK包是一个ZIP压缩包,从Java源代码.资源文件到生成这个APK,经过了编译打包一系列特定的过程,SDK文档(/docs/tools/building/index.html)中找到.而这一系列特定的过程,重复繁琐,构建工具(build tool)就是来流程化

  • Android 如何修改APK的默认名称

    Android 如何修改APK的默认名称 用Android Studio 打包App时生成的名称默认是 app-release.apk(已签名) 或 app-debug.apk(测试版). 要想打包时修改默认名称,可以打开在build.gradle(module:app)文件,在android{}中添加如下代码: android.applicationVariants.all { variant -> variant.outputs.each { output -> def outputFil

  • Android Apk去掉签名以及重新签名的方法

    Android Apk去掉签名以及重新签名的方法 Android开发中很重要的一部就是用自己的密钥给Apk文件签名,不经过签名的Apk文件一般是无法安装的,就算装了最后也是失败. 网上流传的"勾选允许安装未知来源的应用"其实跟签不签名没啥关系,说白了就是允许安装不从电子市场上下载的应用而已. 近几日需要修改一个Apk中JNI调用的.so文件,苦于没有apk源代码,只好研究了一下签名相关的问题.当然有很多第三方工具可以做到,但其实JDK中已经提供了强大的签名工具jarsigner. 1.

  • Android通过aapt命令获取apk详细信息(包括:文件包名,版本号,SDK等信息)

    公司运维问我怎么在windows上安装模拟器,我你说你安装模拟器干什么?他说,我安装模拟器查看app的包名这些信息做统计. 我顿时想,有必要这样折腾么? 我然后就给他装了Android SDK通过build-tools下面的aapt.exe文件执行命令即可得到所有apk信息. aapt命令 aapt l[ist] [-v] [-a] file.{zip,jar,apk} List contents of Zip-compatible archive. aapt d[ump] [--values]

  • Android studio 下的APK打包失败问题解决办法

    Android studio 下的APK打包失败问题解决办法 今天遇到了一个奇怪的问题,本来在Android studio 1.4上运行的好好的程序,到了我更新完的Android studio 2.1上就打包失败了,但是用调试机直接运行则没问题. 最后在app下的build.gradle下加入了这样的一段代码就通过了: lintOptions { abortOnError false checkReleaseBuilds false // 防止在发布的时候出现因MissingTranslatio

  • Android 使用jarsigner给apk签名的方法详细介绍

    Android 使用jarsigner给apk签名的方法详细介绍 工作中APP功能完成以后往往需要往应用商店提交一些内容,如商店中存在本公司别的人员提交的APP,往往需要进行认领,应用商店会让开发者下载空的APK,然后使用自己APP的签名文件进行签名,认证,这里简单说一下如何使用jarsigner命令进行签名. 该arsigner命令在jdk中可以找到, 简单说明一下具体参数: -verbose:签名命令标识符. -keystore:后面跟着的是你签名使用的密钥文件(keystore)的绝对路径

  • Android 8.0安装apk的实例代码

    android 8.0安装apk需要请求未知来源权限 //xml配置 <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES"/> /** * 检测版本8.0 */ public void checkOreo() { if (SdkVersionUtils.hasOreo()) {//8.0 //判断是否可以直接安装 boolean canInstall = getPackageM

  • Android实现图片轮播切换实例代码

    利用Android的ViewFlipper和AnimationUtils实现图片带有动画的轮播切换,其中当点击"上一张"图片时,切换到上一张图片:当点击"下一张"图片时,切换到下一张图片.其效果图如下: 设置布局文件,其内容如下: activity_image_flipper_shade.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xm

  • Android 百度地图POI搜索功能实例代码

    在没介绍正文之前先给大家说下poi是什么意思. 由于工作的关系,经常在文件中会看到POI这三个字母的缩写,但是一直对POI的概念和含义没有很详细的去研究其背后代表的意思.今天下班之前,又看到了POI这三个字母,决定认认真真的搜索一些POI具体的含义. POI是英文的缩写,原来的单词是point of interest, 直译成中文就是兴趣点的意思.兴趣点这个词最早来自于导航地图厂商.地图厂商为了提供尽可能多的位置信息,花费了很大的精力去寻找诸如加油站,餐馆,酒店,景点等目的地,这些目的地其实都可

  • 关于Android高德地图的简单开发实例代码(DEMO)

    废话不多说了,直接给大家上干货了. 以下为初次接触时 ,练手的DEMO import android.app.Activity; import android.app.ProgressDialog; import android.content.ContentValues; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatab

  • Android AutoCompleteTextView自动提示文本框实例代码

    自动提示文本框(AutoCompleteTextView)可以加强用户体验,缩短用户的输入时间(百度的搜索框就是这个效果). 先给大家展示下效果图,如果大家感觉还不错,请参考实现代码: 最后一张获取文本框里面的值(其实就跟TextView.EditText一样): 首先,在xml中定义AutoCompleteTextView控件: activity_main.xml: <LinearLayout xmlns:android="http://schemas.android.com/apk/r

  • Android ProgressBar直线进度条的实例代码

    直线进度条效果图: 点击下载后的效果图: 布局xml文件: empty Java代码: package com.example.android_rogressbar; import android.os.Handler; import android.os.Message; import android.os.StrictMode; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import

  • Android连接指定Wifi的方法实例代码

    本篇文章主要记录一下Android中打开Wifi.获取Wifi接入点信息及连接指接入点的方法. 自己写的demo主要用于测试接口的基本功能,因此界面及底层逻辑比较粗糙. demo的整体界面如下所示: 上图中的OPEN按键负责开启Wifi: GET按键负责获取扫描到的接入点信息. 当获取到接入点信息后,我选取了其中的名称及信号强度,以列表的形式显示在主界面下方,如下图: 当点击列表中的Item时,就会去连接对应的接入点. 自己的逻辑比较简单,测试时的代码,假定连接的是不许要密码或密码已知的接入点.

  • Android条目拖拽删除功能实例代码

    项目中需求,要做条目条目拖拽删除效果,实际效果和QQ消息删除一样,侧滑有制定和删除. 效果图 第一步效果图 1.0自定义控件 SwipeLayout 继承FrameLayout重写里面三个构造方法,分别调用initView(). 2.0在布局中使用自定义控件 3.0在initView()方法中,创建拖拽辅辅助工具 ViewDragHelper() 该方法需要传入回调 MyCallBack() 4.0,创建MyCallBack()回调,继承ViewDragHelper.Callback 在回调中

  • Android Okhttp请求查询购物车的实例代码

    查询购物车的model层 public class SelectCarModel { private String url="http://120.27.23.105/product/getCarts"; private HashMap<String, String> map = new HashMap<>(); public void verifySelectCarInfo(int uid, final ISelectCarPresenter iSelectC

  • Android自定义指示器时间轴效果实例代码详解

    指示器时间轴在外卖.购物类的APP里会经常用到,效果大概就像下面这样,看了网上很多文章,大都是自己绘制,太麻烦,其实通过ListView就可以实现. 在Activity关联的布局文件activity_main.xml中放置一个ListView,代码如下.由于这个列表只是用于展示信息,并不需要用户去点击,所以将其clickable属性置为false:为了消除ListView点击产生的波纹效果,我们设置其listSelector属性的值为透明:我们不需要列表项之间的分割线,所以设置其divider属

随机推荐