今天接到一个需求、需求如下、
默认开机以后屏蔽所有界面,待机界面上只有短信和拨号这两个图标,只能发短信息和拨打电话其它操作都不能使用,然后输入一个代码就可以切换到正常界面了(我们之前的切换代码是:屏蔽*#123456789*#,正常*#9876543231*#)
当时想了半天无从下手、最后一个朋友告诉了一个方法、最后得以实现、先将实现过程记下、作日后用之、高手莫笑
首先我们要做的是拿到一个主要的东西就是屏蔽码、这个代码其实是我们自己做的、也是我们自己设置。 怎么设置首先
我们在自己的项目主配置文件里面加上如下代码:
<receiver android:name="LauncherDecryption">
<intent-filter>
<action android:name="android.provider.Telephony.SECRET_CODE" />
<data android:scheme="android_secret_code" android:host="123456789" />
<data android:scheme="android_secret_code" android:host="987654321" />
</intent-filter>
</receiver>
这是监听一个输入码的receiver、然后怎么去拿到了?
首先要的是可定要去实现LauncherDecryption解密的receiver了代码如下
public class LauncherDecryption extends BroadcastReceiver {
// process *#*#3646633#*#*
Uri openApp = Uri.parse("android_secret_code://123456789");
// process *#*#66#*#*
Uri closeApp = Uri.parse("android_secret_code://987654321");
@Override
public void onReceive(Context context, Intent intent) {
try {
if (intent.getAction().equals(SECRET_CODE_ACTION)) {// android.provider.Telephony.SECRET_CODE
Uri uri = intent.getData();
File file = new File("/data/data/com.mediatek.launcherplus/LauncherDecryption");
if ((uri.toString()).equals(closeApp.toString())) {// 屏蔽状态 文件不存在
if (file.exists()) {
file.delete();
} else {
}
} else if ((uri.toString()).equals(openApp.toString())) {// 正常状态// 文件存在
if (file.exists()) {
} else {
file.mkdir();
file.createNewFile();
}
}
PowerManager pm = (PowerManager) context.getSystemService("power");
pm.reboot(null);
}
} catch (Exception e) {
Log.e("FactoryMode", "Package exception.");
}
}
}
这就是拿到了该注册码之后所做的事情、其他的你想干嘛就干吗了、就算你要对手机五马分尸也行、
然后我拿到了这个注册码之后我只是做了一件事情就算生成了一个目录文件而已、我什么都没有做;
这样根本没有达到我的需求、接下来我就到我们launcher的下面的一个celllayout类跟allApp2D类里面经行拦截枪杀、
拦截代码简单
public void addView(View child, int index, ViewGroup.LayoutParams params) {
// Generate an id for each view, this assumes we have at most 256x256
// cells
// per workspace screen
final LayoutParams cellParams = (LayoutParams) params;
cellParams.regenerateId = true;
File file = new File(
"/data/data/com.mediatek.launcherplus/LauncherDecryption");
Object tag = child.getTag();
if (!file.exists()) {
if (tag instanceof ShortcutInfo) {
ShortcutInfo shortcutInfo = (ShortcutInfo) tag;
Intent intent = ((ShortcutInfo) tag).intent;
if (("com.android.mms.ui.ConversationList").equals(intent.getComponent().getClassName().toString())
|| ("com.android.contacts.DialtactsActivity").equals(intent.getComponent().getClassName().toString())) {
super.addView(child, index, params);
}
}
} else {
super.addView(child, index, params);
}
}
这是在赖在celllayout里面进行的三光政策、我只显示了短信跟拨号、使得launcher桌面成了三毛的哥哥、二弟在世
呵呵、然后还有一个allApp2D类里面加入如下
public void addApps(ArrayList<ApplicationInfo> list) {
final int N = list.size();
for (int i=0; i<N; i++) {
final ApplicationInfo item = list.get(i);
int index = Collections.binarySearch(mAllAppsList, item,
LauncherModel.APP_NAME_COMPARATOR);
if (index < 0) {
index = -(index+1);
}
File file = new File("/data/data/com.mediatek.launcherplus/LauncherDecryption");
if(file.exists() || ("com.android.mms.ui.ConversationList").equals(item.componentName.getClassName().toString())
|| ("com.android.contacts.DialtactsActivity").equals(item.componentName.getClassName().toString())){
mAllAppsList.add(index, item);
}else {
}
}
if (FeatureOption.MTK_YMCAPROP_SUPPORT) {
reorderApps();
}
mAppsAdapter.notifyDataSetChanged();
}
这样需求基本完成、鄙人之拙见高人路过请勿笑话、需求完成收工、有相互学习的朋友call me:329716228@qq.com或加好友
分享到:
相关推荐
《安卓Launcher桌面应用EyeRoom深度解析》 在安卓操作系统中,Launcher桌面是用户与系统交互的重要界面,它负责展示应用程序快捷方式、桌面小部件以及管理主屏幕。本篇将聚焦于名为EyeRoom的安卓桌面应用,通过对...
在安卓系统中,Launcher是用户接触最频繁的组件之一,它是手机主屏幕的载体,用于展示应用快捷方式、小部件以及桌面图标等。本压缩包文件"安卓Launcher桌面相关-实现类似桌面的单屏效果.rar"提供的内容可能包含了...
"Car Launcher桌面启动器自定义配置白痴教程" 是一个针对汽车多媒体系统(车机)设计的桌面启动器应用的教学资源。它旨在帮助用户,尤其是那些不熟悉此类操作的“小白”,轻松理解和自定义Car Launcher的设置。 ...
在Android 2.3系统中,可以通过自定义Launcher应用来控制应用程序图标是否显示在桌面或主菜单中。这一操作对于定制化系统界面、提升用户体验等方面具有重要意义。尽管在Android 4.0系统中与2.3版本有所不同,但核心...
在 Android 系统中,Launcher 是用户与设备交互的重要入口,它作为系统的桌面,展示着应用快捷方式、小部件以及桌面图标等元素。本教程将基于 Eclipse 开发环境,讲解如何创建一个基本的自定义桌面小控件。 1. **...
在Android系统中,Launcher是用户与设备交互的主要入口,它是一个桌面应用,负责显示应用程序的图标、快捷方式以及小部件等。"安卓Launcher桌面相关-Android实现图标拖拽"这个压缩包文件似乎包含了一些关于如何在...
### Android Launcher ...通过以上对《androidlauncher应用开发完整清晰版》一书的内容总结,可以看出该书旨在全面深入地介绍Launcher开发的核心技术和实践经验,适合希望深入了解Android桌面开发的技术人员阅读学习。
在Android系统中,Launcher是用户界面的核心组成部分,它充当了手机主屏幕,允许用户启动应用、组织快捷方式和小部件。本压缩包“安卓Launcher桌面相关-android桌面拖拽效果.rar”可能包含了一些实现Android ...
在Android系统中,Launcher是用户与设备交互的入口,它是一个桌面应用,负责展示应用程序快捷方式、小部件以及管理屏幕工作区。本压缩包提供的"Android应用源码之Android Launcher 桌面分页滑动代码"是一个深入理解...
Android 4.3 Launcher 是Android操作系统中的核心组件之一,它负责为用户提供直观的桌面环境,展示应用程序快捷方式、小部件以及多任务管理等功能。在Android系统中,Launcher扮演着用户与系统交互的桥梁角色,因此...
在Android系统中,Launcher是用户与设备交互的主要界面,它负责显示应用快捷方式、小部件以及桌面布局。在这个主题中,我们将深入探讨如何对Launcher3进行个性化修改,提升用户体验。 首先,我们来了解一下Launcher...
"安卓Launcher桌面相关-带注释的Launcher3.rar"是一个包含源码的压缩包,主要聚焦于Android系统中的Launcher应用开发。Launcher3是Android默认的主屏幕应用,它提供了用户与设备之间的交互界面,包括应用快捷方式、...
Android Launcher是用户与手机交互的起点,它负责展示桌面图标、小部件以及应用程序抽屉。在这个项目源码中,我们可以看到以下几个关键知识点: 1. **布局管理**:Launcher的布局通常由多个GridViews组成,用于显示...
### Android Launcher应用详解 #### 一、Launcher概念与作用 Launcher是Android系统中非常重要的一部分,通常被称为“启动器”或“桌面”。它负责展示应用程序的快捷方式、小部件(widgets)以及文件夹等内容,为...
在Android系统中,Launcher是用户接触最频繁的组件之一,它是设备主屏幕的载体,包含应用图标、小部件以及桌面的各个页面。本教程将详细讲解如何实现Android Launcher的桌面分页滑动功能,这对于想要深入理解Android...
在Android系统中,Launcher是用户与设备交互的主要入口,它负责展示应用快捷方式、桌面小部件等,并且管理着手机的主屏幕。本项目“Android_Launcher桌面循环”着重于实现一个创新的功能:Workspace的循环滑动。这...
在Android系统中,Launcher桌面是用户与应用交互的入口,它展示了手机主屏幕上的应用图标、小部件等。本示例“安卓Launcher桌面相关-android生成桌面快捷方式shortcutdemo.rar”聚焦于如何在Android应用程序中创建...
Android Launcher 是 Android 操作系统中的桌面应用程序,负责管理桌面图标、widget 和其他桌面元素。下面我们将一步步指导您如何开发一个自己的 Launcher,並使其替代系统的默认 Launcher。 了解 Android ...
在Android系统中,Launcher是用户界面的核心组成部分,它充当了手机桌面的角色,允许用户启动应用程序、管理快捷方式和小部件。而"android launcher桌面数字时钟控件"是指在Launcher界面上显示的一种特殊UI元素,它...