- 浏览: 811802 次
- 性别:
- 来自: 广州
最新评论
-
mixture:
语句int num1, num2;的频度为1;语句i=0;的频 ...
算法时间复杂度的计算 [整理] -
zxjlwt:
学习了。http://surenpi.com
[问题解决]Error: ShouldNotReachHere() [整理] -
Animal:
谢谢 楼主 好东西
算法时间复杂度的计算 [整理] -
univasity:
gaidandan 写道缓存失败,,模拟器上可以缓存,同样代码 ...
[开发总结]WebView使用中遇到的一些问题&解决 -
blucelee2:
那么麻烦干吗,而且这种方法会导致,当拉太小的时候样式会丢掉,整 ...
[SWT]SashForm中固定单侧大小(&实现面板隐藏)
前一个问题是论坛里的一位朋友提出来的:“如何在应用安装到手机里时,自动在桌面增加快捷方式?” ,第二个问题是在网上看到的:“apk安装后如何自启动” 。
很显然,除非在应用安装后有相关的广播能被捕获到,否则就没法做了,事实是有的:Intent.ACTION_PACKAGE_ADDED。
Launcher中的应用列表正是这么做的:
<Launcher.java>
/** * Registers various intent receivers. The current implementation registers * only a wallpaper intent receiver to let other applications change the * wallpaper. */ private void registerIntentReceivers() { IntentFilter filter = new IntentFilter(Intent.ACTION_PACKAGE_ADDED); filter.addAction(Intent.ACTION_PACKjAGE_REMOVED); filter.addAction(Intent.ACTION_PACKAGE_CHANGED); filter.addDataScheme("package"); registerReceiver(mApplicationsReceiver, filter); filter = new IntentFilter(Intent.ACTION_CLOSE_SYSTEM_DIALOGS); registerReceiver(mCloseSystemDialogsReceiver, filter); }
我依样画葫芦尝试了一下,直接在我的应用中实现BroadcastReceiver并在XML注册,对action=Intent.ACTION_PACKAGE_ADDED进行捕获,但是没捕获到。
后来一查文档才发现这是行不通的:
public static final
String
ACTION_PACKAGE_ADDED
Broadcast
Action: A new application package has been installed on the device. The
data contains the name of the package. Note that the newly installed
package does
not
receive this broadcast.
看来在应用自身中通过BroadcastReceiver来捕获Add消息是不行的,但是我想到了另一种折中的实现方法——通过另一个应用来辅助实现。
需要先实现一个包含对ntent.ACTION_PACKAGE_ADDED进行捕获的BroadcastReceiver的应用,首先安装到手机上,在他接受到消息后再向你的应用返回一个广播。你需要在你的应用中实现实现对应的BroadcastReceiver。
具体实现:
<辅助apk>
public class PackageChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getAction(); final String packageName = intent.getData().getSchemeSpecificPart(); final boolean replacing = intent.getBooleanExtra(Intent.EXTRA_REPLACING, false); // 通知对应的应用 Intent notifyIntent = new Intent("com.app.action.notifier"); notifyIntent.setPackage(packageName); notifyIntent.putExtra("action", action); notifyIntent.putExtra("replace", replacing); context.sendBroadcast(notifyIntent); } }
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.app.notifier" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="7" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <receiver android:name="PackageChangeReceiver"> <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED"></action> <action android:name="android.intent.action.PACKAGE_CHANGED"></action> <action android:name="android.intent.action.PACKAGE_REMOVED"></action> <data android:scheme="package"></data> </intent-filter> </receiver> </application> </manifest>
<你的应用>
public class PackageChangeReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { final String action = intent.getStringExtra("action"); boolean replace = intent.getBooleanExtra("replace", false); if(action.equals(Intent.ACTION_PACKAGE_ADDED)){ // do some thing you want. } } }xml中注册广播
<receiver android:name="PackageChangeReceiver"> <intent-filter> <action android:name="com.app.action.notifier"></action> </intent-filter> </receiver>
优缺点
缺点:必须先安装辅助apk
优点:仅需一次安装,之后使用只需在应用中实现并在XML中注册BroadcastReceiver就能捕获到安装事件,从而执行相应的操作(添加桌面图标,自启动...)
缺点:必须先安装辅助apk
优点:仅需一次安装,之后使用只需在应用中实现并在XML中注册BroadcastReceiver就能捕获到安装事件,从而执行相应的操作(添加桌面图标,自启动...)
------------------------------------------------------------------------------------------------
可能说得有点乱,把代码也传上来好了... 大家还有什么好的思路可以讨论下哈~~
- AppChangeNotifier.rar (12.6 KB)
- 下载次数: 510
评论
5 楼
univasity
2012-03-28
abc670454997 写道
豌豆荚是怎么实现的??
豌豆荚,91手机助手等也会在手机上装一个客户端的啊,没发现他们有实现安装后自启动和添加桌面快捷方式啊,具体没仔细研究过,除非他们还用了什么驱动吧,JAVA层只能用API提供的方法了。
4 楼
univasity
2012-03-28
gezhong123 写道
问下楼主这个辅助APK 怎么安装到手机中 谢谢了
apk的正常安装方式:1.通过手机助手,USB连线安装; 2.传到SD卡,在手机上操作安装。
说的是这个吗?
3 楼
gezhong123
2012-03-27
问下楼主这个辅助APK 怎么安装到手机中 谢谢了
2 楼
abc670454997
2012-03-26
豌豆荚是怎么实现的??
1 楼
chinapengwei_wh
2011-04-02
没看太懂!
发表评论
-
[转]Android Studio的logcat窗口被拖出来后如何还原?
2016-01-07 10:08 3334无意把Memory Monitor的窗口拖出来了,然后发觉 ... -
[问题解决]个推SDK使用侧记 -- 多个账号注册导致的问题
2013-12-28 14:40 2292这是我们项目最近用到的东西,用来实现消息推送。 (还不了 ... -
[问题解决] 个推(igetui)SDK使用侧记 -- 多个账号注册同一应用导致的问题
2013-12-28 14:33 0这是我们项目最近用到的东西,用来实现消息推送。 (还不了解 ... -
[问题解决]同时显示多个Notification时PendingIntent的Intent被覆盖?
2012-02-02 16:11 17149情况是这样的,使用NotificationManager触发多 ... -
迟来的试用:App Inventor,不用编码也能做出apk
2011-12-22 22:29 2890最近看到App Inventor即将关闭的消息(2011.12 ... -
Maven In Android
2011-08-31 17:32 3493Maven 一个项目管理工具,类似于Ant。相比Ant, ... -
[问题解决]WebView显示的网页在大分辨率屏下被放大 - 密度惹的祸
2011-08-31 17:16 9152例如适合800px宽度的页面,如果通过WebView在 ... -
[工作积累].9图片,不要忘了设定内容填充区域
2011-08-31 17:13 1808<? xml version ... -
Android调试工具 —— MAT [整理]
2011-06-26 23:06 30611简介: Eclipse提供的一个内存分析工具。它是一个功 ... -
Android调试工具 —— TraceView [整理]
2011-06-26 22:58 5165简介: 来自API文档中的一段介绍: Tracevi ... -
[开发总结]WebView使用中遇到的一些问题&解决
2011-06-15 13:45 13383<!-- 最近接触WebView比较多,总结一下使用过程 ... -
[Android API 学习]WebView基本使用
2011-06-15 10:54 8532WebView是android.webkit包下的一 ... -
[问题解决]Error: ShouldNotReachHere() [整理]
2011-06-01 13:03 10924在Android项目中创建一个 ... -
[小工具]apk反编译工具整合(修复)
2011-05-05 00:30 5370//----------------------------- ... -
[问题解决]java.lang.SecurityException: Permission Denial requires null[整理]
2011-04-12 13:10 24146原因分析: 在SDK版本eclair中(Level 5- ... -
[基础]Android SDK版本与API Level对应列表[收集]
2011-04-12 12:32 4830Platform Version AP ... -
View.setOnKeyListener无法捕获事件?[收集]
2011-03-24 23:32 12731最近在使用View中的setKeyListener时碰到了这问 ... -
Android 获取指向Resource的URI[转]
2011-03-23 21:35 7644>> Uri真强大,还能这么搞...收藏了,回头要 ... -
Android模拟器网络连接问题解决[转]
2011-03-22 13:35 7943原文链接: http://hi.baidu.com/bing ... -
[Android API学习]Data Storage胡乱翻译(2)
2011-03-16 23:47 2077使用外部存储器 (Using th ...
相关推荐
用户在安装此APK时,系统会根据Manifest中的配置自动生成多个桌面图标。 4. **用户交互**:用户在设备上看到的是两个独立的图标,点击每个图标都会启动相应的Activity,从而实现不同的功能或界面。 5. **注意事项*...
4. **自定义Launcher图标**:如果需要在桌面图标上直接显示气泡,可能需要对Android Launcher进行扩展或使用第三方库,因为默认的系统行为可能不支持直接修改桌面图标。 5. **处理权限**:确保你的应用拥有必要的...
安装后,只需在启动器设置中选择这些图标包,即可让app图标和hotseat图标变为圆角。 总的来说,将9.0和10.0 Launcher3的app图标和hotseat图标设置为圆角图标涉及到系统级别的设置、代码修改、主题应用、第三方工具...
最后,开发者需要使用Android Studio的Build菜单将源代码打包成APK文件,然后在模拟器或真实设备上进行安装和调试,确保应用能正常运行。 10. **发布与更新**: 当应用开发完成后,还需要考虑发布到Google Play或...
在使用Genymotion时,理解Apk库的管理和安装流程是至关重要的,这有助于提升开发效率,特别是在进行多应用集成测试或对不常见设备配置进行兼容性验证时。同时,确保始终从可靠来源获取Apk,以避免潜在的安全风险。
在Android系统中,桌面应用程序(Launcher)是用户与设备交互的主要入口,允许用户启动其他应用、管理快捷方式和小部件。"Android自定义桌面2.0"是一个项目,旨在提供一个更加个性化和功能丰富的桌面体验,它可能...
总的来说,Android桌面定制是一个充满无限可能的领域,无论是追求美观还是实用性,都可以通过不断探索和尝试找到最适合自己的个性化桌面。这个"android 桌面定制"资源文件为用户提供了便利,让定制变得更加简单,是...
- `BroadcastReceiver`:监听系统的广播事件,如安装/卸载应用,以便更新桌面图标。 二、自定义Android桌面的关键技术点 1. 获取系统应用列表:通过`PackageManager`获取系统中所有已安装的应用信息,包括应用名、...
Android桌面管理软件是Android操作系统中一个重要的组成部分,它负责用户界面的组织和管理,使得用户可以方便、快捷地访问手机上的应用和功能。在Android系统中,桌面管理软件通常被称为Launcher,它扮演着用户与...
8. **设置和配置**:可能增加了新的设置选项,让用户能更精细地调整桌面行为,如自动整理应用图标、屏幕过渡效果等。 9. **资源节省**:为了延长电池寿命,开发者可能会对应用的能耗进行优化,减少不必要的后台活动...
8. **编译和运行**:由于源码中不包含`classes.jar`文件,你需要从其他资源下载或者使用Android SDK的构建工具(如Gradle)重新编译项目,生成对应的APK文件,然后在Android模拟器或真实设备上安装运行。 通过研究...
在Android系统中,Launcher是用户与设备交互的入口,它负责展示桌面图标、应用抽屉以及各种快捷方式,使得用户可以启动不同的应用程序。定制Launcher意味着开发者可以根据自己的需求修改默认的界面布局、添加特色...
它们包含具体的源代码和资源文件,展示了如何在实际的桌面启动器应用中实现皮肤功能。开发者可以通过解压并研究这两个示例,学习皮肤的加载、切换以及与应用程序的交互逻辑。 在Android中,实现皮肤通常涉及到以下...
Android Launcher 是Android操作系统的核心组成部分,它是用户与系统交互的初始界面,负责展示应用程序图标、桌面小部件等。本文将深入探讨Android Launcher的源码结构、关键组件以及如何进行修改和编译。 首先,...
5. 读取和安装指南:解释如何正确安装和使用这两个组件的文档。 综合以上信息,我们可以知道这个压缩包提供了三星S5原生的桌面启动器和天气插件,旨在解决启动器问题并为其他Android用户提供新的用户体验。用户在...
3. `AppDrawer`:应用抽屉是用户查看和启动所有安装应用的地方。`AppDrawer`根据字母顺序或用户自定义排序显示应用,并支持搜索功能。 四、特性增强 1. 动画效果:Android 4.0的Launcher2引入了更丰富的动画效果,...
- 启动器是用户与Android系统的交互入口,负责显示桌面图标、应用抽屉和小部件。 - 它管理用户的主屏幕布局,允许用户自定义桌面快捷方式、文件夹和小部件的位置。 - Launcher3还负责处理点击事件,比如打开应用...
6. **自启动管理**:控制应用的自启动行为,避免不必要的后台程序占用系统资源,提升设备续航。 7. **壁纸更换**:丰富的壁纸库,用户可以选择各种风格的壁纸来个性化自己的设备桌面。 8. **小部件支持**:支持...
- 当安装完成后,通常会在系统托盘或桌面右下角出现一个通知,告知你安装成功。 5. **确认安装**: - 打开安卓模拟器,你可以在主屏幕或者“我的应用”、“已安装”这样的应用列表中看到新安装的APK应用图标。 -...