Android特性功能,Android硬件相关功能点

浅谈视频壁纸- https://blog.csdn.net/miLLlulei/article/details/77868105

Android系统截屏- https://blog.csdn.net/solarsaber/article/details/78038240

Android仿网易云音乐中锁屏后在开锁界面插屏功能- https://blog.csdn.net/u010696525/article/details/51445515

Android闪光灯实现- https://blog.csdn.net/u014752325/article/details/52945944

-- 图层LayerDrawable
Android View加载圆形图片且同时绘制圆形图片的外部边缘边线及边框:LayerDrawable实现- https://blog.csdn.net/zhangphil/article/details/52035255

Android锁屏的实现原理及技术要点- https://blog.csdn.net/ahence/article/details/25400911
an universal lock screen app demo with "shield" the home key on android 4.0+- https://github.com/ASPOOK/Android-LockScreen

-- 应用要创建和删除自己的快捷方式图标只需发送如下两个Intent即可:
com.android.launcher.action.INSTALL_SHORTCUT
com.android.launcher.action.UNINSTALL_SHORTCUT
  同时需要在AndroidManifest.xml中添加如下两个权限:
android:name="com.android.launcher.permission.INSTALL_SHORTCUT
android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT

-- 同一个机构发开的不同App之间的数据共享, android:sharedUserId
  不同的应用程序可以运行在相同的进程中。对于此方法,首先必须使用相同的私钥签署这些应用程序,然后必须使用 manifest 文件给它们分配相同的 Linux 用户 ID,这可以通过用相同的值/名定义 manifest 属性 android:sharedUserId 来做到。通过sharedUserId,拥有同一个User id的多个APK安装包可以配置成运行在同一个进程中.所以默认就是可以互相访问任意数据. 也可以配置成运行成不同的进程, 同时可以访问其他APK的数据目录下的数据库和文件.就像访问本程序的数据一样。这样就为同一个机构发开的不同App之间的数据共享,提供了便利。

-- 低耗电模式下的一些限制:
 暂停访问网络。
 系统将忽略 wake locks。
 标准 AlarmManager 闹铃(包括 setExact() 和 setWindow())推迟到下一维护时段。
 如果您需要设置在低电耗模式下触发的闹铃,请使用 setAndAllowWhileIdle() 或 - setExactAndAllowWhileIdle()。
 一般情况下,使用 setAlarmClock() 设置的闹铃将继续触发 — 但系统会在这些闹铃触发之前不久退出低电耗模式。
 系统不执行 Wi-Fi 扫描。
 系统不允许运行同步适配器。
 系统不允许运行 JobScheduler。

> 安装和卸载

Android代码实现APP普通安装卸载和静默安装卸载- http://blog.csdn.net/risingwonderland/article/details/45537313
Android静默安装和静默卸载代码- http://www.cnblogs.com/lr393993507/p/5543145.html
Android中实现静态的默认安装和卸载应用- http://blog.csdn.net/jiangwei0910410003/article/details/36427963

在安装和卸载完后,android系统会发一个广播:
android.intent.action.PACKAGE_ADDED(安装);
android.intent.action.PACKAGE_REMOVED(卸载);
/* 安装apk */  
public static void installApk(Context context, String fileName) {  
    Intent intent = new Intent();  
    intent.setAction(Intent.ACTION_VIEW);  
    intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);  
    intent.setDataAndType(Uri.parse("file://" + fileName),"application/vnd.android.package-archive");  
    context.startActivity(intent);  
}  
  
/* 卸载apk */  
public static void uninstallApk(Context context, String packageName) {  
    Uri uri = Uri.parse("package:" + packageName);  
    Intent intent = new Intent(Intent.ACTION_DELETE, uri);  
    context.startActivity(intent);  
}  

> Android壁纸,动态壁纸 静态壁纸
深入理解Android壁纸- http://blog.csdn.net/innost/article/details/47660645
在Android中设置壁纸的方法,在Android中设置壁纸的方法有三种,分别是:
 1、使用WallpaperManager的setResource(int ResourceID)方法
 2、使用WallpaperManager的setBitmap(Bitmap bitmap)方法
 3、重写ContextWrapper 类中提供的setWallpaper()
 <uses-permission android:name="android.permission.SET_WALLPAPER"/>

> 飞行模式,4.2以上的版本app没有权限修改Setting.Global的
android 4.2 系统以后的飞行模式- http://blog.csdn.net/hrklzwzj/article/details/51940507
飞行模式- https://github.com/tl3shi/AirPlaneModeSwitcher
if(Settings.System.getString(cr,Settings.System.AIRPLANE_MODE_ON).equals("0")){
  //获取当前飞行模式状态,返回的是String值0,或1.0为关闭飞行,1为开启飞行
  //如果关闭飞行,则打开飞行
  Settings.System.putString(cr,Settings.System.AIRPLANE_MODE_ON, "1");
  // Settings.System.putString(cr,Settings.System.AIRPLANE_MODE_ON, "0");
  Intent intent = new Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED);
  sendBroadcast(intent);
}

> 手电筒
android 实现手电筒功能- http://blog.csdn.net/ak4100/article/details/43953055
Android开启手电筒功能(完美适配Android4x,5x,6x)- http://blog.csdn.net/mynameishuangshuai/article/details/53214763

> 调节屏幕亮度(当前应用和系统亮度)
Android 调节屏幕亮度(当前应用和系统亮度)- http://blog.csdn.net/xinyutianyu/article/details/45605803
android-设置系统及应用级屏幕亮度- http://blog.csdn.net/centralperk/article/details/40345221
Android6.0调节屏幕亮度显示- http://blog.csdn.net/qitehuanjue/article/details/53219873
android5.1 自动亮度调节简析- http://www.jianshu.com/p/13658019bcea
Android设置屏幕亮度的两种方式- http://blog.csdn.net/jiangxuelei_2015/article/details/51243575
Android调整屏幕亮度和改变屏幕亮度调整模式的代码- http://blog.csdn.net/hzlxtq123/article/details/53742057
boolean autoBrightness = false;  
ContentResolver contentResolver = activity.getContentResolver();  
        try {  
            autoBrightness = Settings.System.getInt(contentResolver,  
                    Settings.System.SCREEN_BRIGHTNESS_MODE) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC;  
        }

> 手机低电量模式

Android Low Battery 低电量处理流程- http://blog.csdn.net/wangbaochu/article/details/44406681

> 缓存处理及手机硬盘容量

Android 文件保存getFilesDir()丶getCacheDir()、getExternalFilesDir() 等操作方法探索- http://blog.csdn.net/android_technology/article/details/53516357
 计算Android App占用的各种空间大小- https://www.baidufe.com/item/8786bc2e95a042320bef.html http://blog.csdn.net/hyl963254113/article/details/43405363
 Android获取cpu使用率,剩余内存和硬盘容量- http://blog.csdn.net/l2show/article/details/40950657
 Android中App可分配内存的大小- http://blog.csdn.net/u011506413/article/details/50965435

> 开机,关机
1.定时开机
pendingIntent = PendingIntent.getBroadcast(context,0,poweron_intent,PendingIntent.FLAG_CANCEL_CURRENT);
am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,calendar.getTimeInMillis(), poweron_pendingIntent);
2.定时关机
-- 发送关机intent
pendingIntent = PendingIntent.getBroadcast(context,0,poweroff_intent,PendingIntent.FLAG_CANCEL_CURRENT);
am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),pendingIntent);
-- 收关机intent
 if(from_intent.getAction().equals("com.android.settings.action.REQUEST_POWER_OFF")) {
Intent intent = new Intent(Intent.ACTION_REQUEST_SHUTDOWN);
intent.putExtra(Intent.EXTRA_KEY_CONFIRM, false);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivityAsUser(intent, UserHandle.CURRENT);
}

猜你喜欢

转载自blog.csdn.net/ShareUs/article/details/78309592