android第三方应用安装来源设置分析

  次阅读 作者:智能小宝 来源:互联网 2016-01-13 21:45 我要评论(0)

1.在系统设置里面->应用程序设置->未知来源设置

下面是界面元素定义

\packages\apps\Settings\res\xml\application_settings.xml

<CheckBoxPreference

android:key="toggle_install_applications"

android:title="@string/install_applications"

android:summaryOff="@string/install_unknown_applications"

android:summaryOn="@string/install_unknown_applications"

android:persistent="false" />

下面是界面设置变动修改的settings信息。1是允许 0是不允许

// Change the system setting

Settings.Secure.putInt(getContentResolver(), Settings.Secure.INSTALL_NON_MARKET_APPS, enabled ? 1 : 0);

只是修改了Settings.Secure.INSTALL_NON_MARKET_APPS这个设置变量并没有做其它的事情;

2.在系统安装apk时会调用系统里面的一个叫PackageInstaller.apk

packages\apps\PackageInstaller\src\com\android\packageinstaller\PackageInstallerActivity.java

1)安装apk时会调用这个系统的apk执行安装过程,在创建这个安装的activity时onCreate()会去check未知来源设置

//check setting

if(!isInstallingUnknownAppsAllowed()) {

//ask user to enable setting first

showDialogInner(DLG_UNKNOWN_APPS);

return;

}

如果你设置了不允许安装,会弹出禁止安装的Dialog,点击设置会把你引导到系统设置->应用程序设置里面。

有个问题是,只要设置为不允许,调用PackageInstaller.apk安装都会弹出,不知道如何做到可以不弹出?现在开发的版本 大多都是定制的。找遍几个手机,都没有发现,googleappstore安装不需要设置的。个人认为如果要修改,可能就会在这里面做文章,而不是修改 PackageManagerService.

2)调用初始化安装,再调 startInstallConfirm->InstallAppProgress.java启动安装进度

// Start subactivity to actually install the application

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 (installerPackageName != null) {

newIntent.putExtra(Intent.EXTRA_INSTALLER_PACKAGE_NAME, installerPackageName);

}

if(localLOGV) Log.i(TAG, "downloaded app uri="+mPackageURI);

startActivity(newIntent);

调用AndroidManifest.xml安装和卸载

AndroidManifest.xml的源码中我们知道:

packages\apps\PackageInstaller\AndroidManifest.xml

<activity android:name=".PackageInstallerActivity"

android:configChanges="orientation|keyboardHidden"

android:theme="@style/TallTitleBarTheme">

<intent-filter>

<action android:name="android.intent.action.VIEW" />

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...