Android实现应用下载并自动安装apk包

安装:

?


1

2

3

4

5

String str = "/CanavaCancel.apk";

String fileName = Environment.getExternalStorageDirectory() + str;

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setDataAndType(Uri.fromFile(new File(fileName)), "application/vnd.android.package-archive");

startActivity(intent);

卸载:

?


1

2

3

Uri packageURI = Uri.parse("package:com.demo.CanavaCancel");  

Intent uninstallIntent = new Intent(Intent.ACTION_DELETE, packageURI);  

startActivity(uninstallIntent);

Environment拥有一些可以获取环境变量的方法

package:com.demo.CanavaCancel 这个形式是 package:程序完整的路径 (包名+程序名).

//下载apk程序代码

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

protected File downLoadFile(String httpUrl) {

                // TODO Auto-generated method stub

                final String fileName = "updata.apk";

                File tmpFile = new File("/sdcard/update");

                if (!tmpFile.exists()) {

                        tmpFile.mkdir();

                }

                final File file = new File("/sdcard/update/" + fileName);

                try {

                        URL url = new URL(httpUrl);

                        try {

                                HttpURLConnection conn = (HttpURLConnection) url

                                                .openConnection();

                                InputStream is = conn.getInputStream();

                                FileOutputStream fos = new FileOutputStream(file);

                                byte[] buf = new byte[256];

                                conn.connect();

                                double count = 0;

                                if (conn.getResponseCode() >= 400) {

                                        Toast.makeText(Main.this"连接超时", Toast.LENGTH_SHORT)

                                                        .show();

                                else {

                                        while (count <= 100) {

                                                if (is != null) {

                                                        int numRead = is.read(buf);

                                                        if (numRead <= 0) {

                                                                break;

                                                        else {

                                                                fos.write(buf, 0, numRead);

                                                        }

                                                else {

                                                        break;

                                                }

                                        }

                                }

                                conn.disconnect();

                                fos.close();

                                is.close();

                        catch (IOException e) {

                                // TODO Auto-generated catch block

                                e.printStackTrace();

                        }

                catch (MalformedURLException e) {

                        // TODO Auto-generated catch block

                        e.printStackTrace();

                }

                return file;

        }

//打开APK程序代码

private void openFile(File file) {

                // TODO Auto-generated method stub

                Log.e("OpenFile", file.getName());

                Intent intent = new Intent();

                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

                intent.setAction(android.content.Intent.ACTION_VIEW);

                intent.setDataAndType(Uri.fromFile(file),

                                "application/vnd.android.package-archive");

                startActivity(intent);

        }

时间: 2024-10-30 01:53:55

Android实现应用下载并自动安装apk包的相关文章

如何下载Office365离线安装程序包并手动安装?

如何下载Office365离线安装包并手动安装? ?Lander Zhang 专注外企按需IT基础架构运维服务,IT Helpdesk 实战培训践行者博客:https://blog.51cto.com/lander IT Helpdesk 工程师实战培训课程:https://edu.51cto.com/lecturer/733218.html轻松进外企:IT Helpdesk工程师实战自学之路:https://blog.51cto.com/lander/2413018更新时间:2019/7/10

下载更新文件后,调用安装器自动安装apk文件

在更新操作时,下载新apk之后,往往需要自动安装新apk,用以下代码即可安装下载在本地的apk文件(apkFile) Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive"); startActivity(intent);

Android中让应用程序自动安装到手机内存及判断应用程序是否安装在SDCard中

上次写了个widget程序,安装好后准备把它添加到手机主页上,发现窗口小部件中找不到我刚刚安装的那个widget,网上查资料才发现系统窗口小部件只能先加载扫描安装在内存的应用程序,把属于widget的APP显示到小部件列表上. 对于开发者来说,怎样才能让应用程序自动安装到手机内存中去呢? 在 Android2.2版本及之后,AndoridManifest.xml 中有一个属性: Android:installLocation ,可以通过设置这个属性的三个值 "auto" | "

【Android】获取手机中已安装apk文件信息(PackageInfo、ResolveInfo)(应用图片、应用名、包名等)

众所周知,通过PackageManager可以获取手机端已安装的apk文件的信息,具体代码如下 [java] view plaincopyprint? PackageManager packageManager = this.getPackageManager(); List<PackageInfo> packageInfoList = packageManager.getInstalledPackages(0); 通过以上方法,可以得到手机中安装的所有应用程序,既包括了手动安装的apk包的信

如何在eclipse安装apk包

如何在eclipse安装下载好的apk包 好像是有好几种方法,我成功的是这种. 1.首先启动模拟器,我选择的是Android 4.2.2,因为...默认安得Android 7.1.1起不了,真是大坑,我启了一年.. 2.启动成功之后,点击DDOS,如果没有请先添加 3.进入DDMS,选择file explore,点开data,看到app进去,然后把你要安装的xxx.apk拖进去,放在app文件夹下. 然后在看你的模拟器,是不是看到你的apk已经安装进去了. 参考: http://www.jb51

Android插件化开发---运行未安装apk中的Service

如果你还不知道什么叫插件化开发,那么你应该先读一读之前写的这篇博客:Android插件化开发,初入殿堂 上一篇博客主要从整体角度分析了一下Android插件化开发的几个难点与动态加载没有被安装的apk中的Activity和资源的方法.其实一般的插件开发主要也就是加载个Activity,读取一些资源图片之类的.但是总有遇到特殊情况的时候,比如加载Service. 要动态加载Service,有两种思路:一是通过NDK的形式,将Service通过C++运行起来(这种方法我没有尝试,只听群里的朋友说实现

集成jenkins自动安装apk文件

def get_latest_package(self, path, filename): """ 在Jenkins下载最新的安装包 """ apk_path = os.path.join(sys.path[0], filename) if os.path.exists(apk_path): os.remove(filename) url = 'http://xxx:8080/job/xxx/lastSuccessfulBuild/artifac

电脑用bat脚本给手机批量自动安装apk文件 autoInstall.bat

------创建这个文件autoInstall.bat 内容如下: @ECHO off @REM 将adb.exe添加到PATH中ECHO 初始化…@SET PATH=%PATH%;%CD%\Adb@REM SET PATH @REM 无限循环的标签:LOOP ECHO 等待您插入手机…adb wait-for-device @REM 循环安装本目录下的APK文件FOR %%i IN (*.apk) DO ( ECHO 正在安装:%%i adb install %%i )@echo off EC

【转载】android中APK包的安装以及adb命令的使用

apk包安装步骤: 1,首先将../android-sdk/platform/tools添加都path路径下 2,在控制台窗口中进入到你apk包所在的目录中 3,输入:abd unremount,第一次使用该命令的时候需要获取该命令的操作权限 4,打开android的模拟器 5,在控制台中执行:adb install 包名.apk 6,如果显示success,那么久安装apk包成功,显示Failure,则安装失败. 7,检查错误,排错,再执行如下命令:abd install -r 包名.apk