简体中文 | English
 

1.安装应用

调用方式:
Intent intent = new Intent("com.deepoon.dpnController.PACKAGE_CONTROL");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
intent.putExtra("controlType""package");
intent.putExtra("operation""installApk");
intent.putExtra("apkPath",filePath);
sendBroadcast(intent); 
 
参数说明:filePath :如"/sdcard/Download/apkname.apk"
 

2.卸载应用

调用方式:
Intent intent = new Intent("com.deepoon.dpnController.PACKAGE_CONTROL");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
 
intent.putExtra("controlType""package");
intent.putExtra("operation""uninstallApk");
intent.putExtra("packageName",packageName); 
sendBroadcast(intent); 
 
参数说明:packageName: 应用包名,eg:"com.test.sample"

3.打开应用

调用方式:
Intent intent = new Intent("com.deepoon.dpnController.PACKAGE_CONTROL");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
 
intent.putExtra("controlType""package");
intent.putExtra("operation""openApk");
intent.putExtra("packageName",packageName); 
sendBroadcast(intent); 
 
参数说明:packageName: 应用包名,eg:"com.test.sample"

4.关闭应用

调用方式:
Intent intent = new Intent("com.deepoon.dpnController.PACKAGE_CONTROL");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
 
intent.putExtra("controlType""package");
intent.putExtra("operation""closeApk");
intent.putExtra("packageName",packageName); 
sendBroadcast(intent); 
 
参数说明:packageName: 应用包名,eg:"com.test.sample"

5.重启

系统重启
调用方式:
Intent intent = new Intent("com.deepoon.dpnController.PACKAGE_CONTROL");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
 
intent.putExtra("controlType""package");
intent.putExtra("operation""reboot");
sendBroadcast(intent); 
 

6.关机

系统关机
调用方式:
Intent intent = new Intent("com.deepoon.dpnController.PACKAGE_CONTROL");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
 
intent.putExtra("controlType""package");
intent.putExtra("operation""shutdown");
sendBroadcast(intent); 
 
以下为每个字段的含义:
controlType:表示控制类型,目前只有一种 package;
operation:表示操作类型,包括openApk/closeApk/installApk/uninstallApk/reboot/shutdown;
packageName:包名,操作类型为openApk/closeApk/uninstallApk的时候传该参数;
apkPath:包路径,只有操作类型为installApk的时候传递该参数;
 

7.状态完成广播

action:"com.deepoon.dpnController.RESULT"
StringExtra: "controlType"
StringExtra: "packageName"
StringExtra: "operation"
 

8.自定义长按返回键

允许用户指定在Home键事件触发时打开的应用。
调用方式:
Intent intent = new Intent("com.deepoon.dpnController.PACKAGE_CONTROL");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
intent.putExtra("operation", "blockhomekey");
intent.putExtra("command", 1);
intent.putExtra("packageName","com.deepoon.dpnapkcontroller");
intent.putExtra("className","com.deepoon.dpnapkcontroller.MainActivity");
sendBroadcast(intent);
 
参数说明:
// command value: // 1开启自定义长按返回键功能
// 0关闭自定义长按返回键功能
// packageName value:应用包名
// className value:目标Activity的类名
 

9. 阻止系统休眠

调用方式:
Intent intent = new Intent("com.deepoon.dpnController.PACKAGE_CONTROL");
intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
intent.putExtra("operation", "blockgotosleep");
intent.putExtra("command",19);
sendBroadcast(intent);
参数说明
// command可取如下值:

0
恢复默认行为,不阻止系统按键事件或休眠事件。
0x1 阻止系统Power按键事件
0x2 阻止系统返回键按键事件
0x4 阻止Home键事件
0x10 屏幕常亮,系统正常运行
0x20 屏幕由于P-Sensor远离事件熄灭后,系统不会进入休眠,保证App的OnPause不被调用到,以确保UnityMain线程正常循环运行。

如果需要阻止多个功能,请通过或操作将需要的功能设置到command中。如需要阻止power、返回和保持屏幕常亮,请将19(0x1 | 0x2 | 0x10)或(0x1 + 0x2 + 0x10)设置给command。

If you want block several functions together, you can send aboved cmd values addition. e.x. If you want block power key & back key & keep screen always-on, the cmd value will be 19(1+2+16). It is very flexible and customizable. Following the above setting, if you want back to normal & just keep blocking power key, you can just send 1(19-2-16). For clearing all blockings, just send 0.



10. 设置新的Home Launcher

调用方式:

方式1:

public void setNewLauncher(String packageName) {
    Intent intent = new Intent("com.deepoon.dpnController.PACKAGE_CONTROL");
    intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
    intent.putExtra("operation", "setnewlauncher");
    intent.putExtra("launcherPkg", packageName);
    mContext.sendBroadcast(intent);
    Log.d(TAG, "Set new home launcher: " + packageName);
}
 
 
public void restoreDpnLauncher() {
    Intent intent = new Intent("com.deepoon.dpnController.PACKAGE_CONTROL");
    intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
    intent.putExtra("operation", "restoredpnlauncher");
    mContext.sendBroadcast(intent);
    Log.d(TAG, "Restore home to DpnLauncher");
}

方式2:

public void setDefaultLauncher(String launcher){
    Intent intent = new Intent("deepoon.intent.action.DEVICE_DEFAULT_LAUNCHER");
    intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES);
    intent.putExtra("launcher_default", 1);
    intent.putExtra("launcher_packagename", launcher);
    mContext.sendBroadcast(intent);
}


参数说明:
// launcher_packagename value: // 新Launcher应用的包名,新Launcher 主Activity最好添加以下属性。

<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>



11. 保持灭屏后wifi不休眠(会影响待机功耗)

正常情况下设备wifi会在灭屏15分钟后进入休眠(或者关闭)以优化待机功耗。如果有需求需要,即使设备灭屏后也要保持后台wifi一直工作,可以通过此开关打开。

setSystemProperties("debug.wifi.neversleep", "1"); //保持wifi后台一直工作
setSystemProperties("debug.wifi.neversleep", "0"); //恢复wifi灭屏后休眠逻辑
 
 
 
public void setSystemProperties(String name, String value) {
    try {
        Class<?> clazz = Class.forName("android.os.SystemProperties");
        Method method = clazz.getMethod("set", new Class[]{String.class, String.class});
        method.invoke(null, new Object[]{name, value});
    } catch (Exception e) {
        Log.e(TAG, "Exception: " + e);
    }
}



Copyright © dpvr.cn, All Rights Reserved 沪ICP备15019466号-2 (Shanghai) Shanghai Lexiang Technology Co., Ltd