Android修改PackageInstaller自动安装指定应用

  •                    }
    
  •                    if (enabled && "com.antutu.benchmark.full".equals(mAppInfo.packageName)) {//如果自动安装的apk是antutufull(3dTest),则>安装完成后自动启动测试
    
  •                        Intent intent = new Intent("com.antutu.benchmark.full.MAROONED_RUN");
    
  •                        intent.setFlags(335544320);
    
  •                        intent.setComponent(new ComponentName("com.antutu.benchmark.full", "com.antutu.benchmark.full.UnityPlayerActivity"));
    
  •                        intent.putExtra("uid", "8939");
    
  •                        startActivity(intent);
    
  •                        //startActivity(mIntent);
    
  •                    }
    
  •                     finish();
    
  •                    return;
    
  •                }
    

// Update the status text

mProgressBar.setVisibility(View.GONE);

// Show the ok button

diff --git a/packages/apps/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java b/packages/apps/PackageInstaller/src/com/android/packageinstaller/Pack

index de68582…b85b767 100644

— a/packages/apps/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java

+++ b/packages/apps/PackageInstaller/src/com/android/packageinstaller/PackageInstallerActivity.java

@@ -120,6 +120,35 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen

private static final int DLG_NOT_SUPPORTED_ON_WEAR = DLG_BASE + 7;

private void startInstallConfirm() {

  •      if(mAutoInstall)
    
  •    {
    
  •                Intent newIntent = new Intent();
    
  •                newIntent.putExtra(PackageUtil.INTENT_ATTR_APPLICATION_INFO,
    
  •                                                 mPkgInfo.applicationInfo);
    
  •                newIntent.setData(mPackageURI);
    
  •                newIntent.setClass(this, InstallAppProgress.class);
    
  •                String installerPackageName = getIntent().getStringExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME);
    
  •                if (mOriginatingURI != null) {
    
  •                    newIntent.putExtra(Intent.EXTRA_ORIGINATING_URI, mOriginatingURI);
    
  •                }
    
  •                if (mReferrerURI != null) {
    
  •                    newIntent.putExtra(Intent.EXTRA_REFERRER, mReferrerURI);
    
  •                }
    
  •                if (mOriginatingUid != VerificationParams.NO_UID) {
    
  •                    newIntent.putExtra(Intent.EXTRA_ORIGINATING_UID, mOriginatingUid);
    
  •                }
    
  •                if (installerPackageName != null) {
    
  •                    newIntent.putExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME,installerPackageName);
    
  •                }
    
  •                if (getIntent().getBooleanExtra(Intent.EXTRA_RETURN_RESULT, false)) {
    
  •                    newIntent.putExtra(Intent.EXTRA_RETURN_RESULT, true);
    
  •                    newIntent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
    
  •                }
    
  •                newIntent.putExtra("AutoInstall", true);
    
  •                if(localLOGV) Log.i(TAG, "downloaded app uri="+mPackageURI);
    
  •                startActivity(newIntent);
    
  •                finish();
    
  •    }else{
    

((TextView) findViewById(R.id.install_confirm_question))

.setText(R.string.install_confirm_question);

findViewById(R.id.spacer).setVisibility(View.GONE);

@@ -217,6 +246,7 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen

});

}

}

+}

private void showDialogInner(int id) {

// TODO better fix for this? Remove dialog so that it gets created again

@@ -402,6 +432,7 @@ public class PackageInstallerActivity extends Activity implements OnCancelListen

? RESULT_OK : RESULT_FIRST_USER, result);

}

  • boolean mAutoInstall = false;

@Override

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

总结

找工作是个很辛苦的事情,而且一般周期都比较长,有时候既看个人技术,也看运气。第一次找工作,最后的结果虽然不尽如人意,不过收获远比offer大。接下来就是针对自己的不足,好好努力了。

最后为了节约大家的时间,我把我学习所用的资料和面试遇到的问题和答案都整理成了PDF文档

喜欢文章的话请关注、点赞、转发 谢谢!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

谢谢!

[外链图片转存中…(img-0c2BAJ5s-1712548864088)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 27
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值