A. android miui 为什么不能在锁屏显示activity
对于安卓确实所知道不多,以下仅供参考: 1 由于是系统刷机升级,MIUI 锁屏并不是非常理想,虽然界面绚丽; 2 UC(浏览器)里面的设置没有生效或是和其他的应用不兼容
B. 安卓手机怎么设置锁屏动效
安卓手机要设置锁屏动效,那么你可以进入设置女汉子主题,然后呢,有锁屏动效这个然后呢,根据你自己的要求。
C. android开发 怎样锁屏并设置解锁密码
Android设置锁屏密码的方法:
1.首先,需要找到系统自带应用设置。
通过以上步骤轻松给android手机设置锁屏密码。
D. android编程 锁频后activity被杀死问题
android:configChanges="orientation"
你的程序不是被杀死,否则你再打开就不会是你的程序了。只是由于你没有给这个activity声明横竖屏,导致的。你那个属性避免机器后台运行时,可能被杀死。
android activity的生命周期,具体有哪些你可以网络一下。主要区别在于,初始化一些view等,要activity创建的时候,所以写在onCreate里面。有的逻辑不需要开始就执行,就没必要写在里面。这些是生命周期的方法,不需要触发。系统会自己调用。比如你想在activity结束的时候,清空一些数据。那么就可以把这些操作写在activity的onDestroy里面,你要是都写在oncreate里面岂不是,activity刚启动就执行清除数据的操作了。
E. 安卓设置锁屏时预览消息内容
Android锁屏状态下弹出activity:
1、在接收消息广播的onReceive里,跳转到要显示的界面。如: Intent intent = new Intent(arg0,MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
arg0.startActivity(intent);
2、在该activity的onCreate()方法里:
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLA G_SHOW_WHEN_LOCKED|WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
setContentView(R.layout.activity_main);
3、设置activity的theme属性:
android:theme="@android:style/Theme.Wallpaper.NoTitleBar"
4、添加点击事件,进入app,突破锁屏:
KeyguardManager keyguardManager = (KeyguardManager) getSystemService(KEYGUARD_SERVICE);
KeyguardLock keyguardLock = keyguardManager.newKeyguardLock("");
keyguardLock.disableKeyguard();
5、在menifest中加入该权限:
<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
F. android怎么实现我要学霸的强制锁屏功能
android 手机 debug版本(即开发版本,不是发出去生产的版本)
数据线
方法/步骤
我这里介绍的方式是针对手机系统是debug版本的,因为生产版本不让用户自己修改系统的一些参数
先上代码解释清楚原理,点击power按钮,系统会发消息给KeyguardViewMediator,然后消息传递给KeyguardViewManager,然后会掉用show方法,来显示锁屏。具体的创建锁屏view又会调用maybeCreateKeyguardLocked方法,现在来具体看下这个方法
这个方法里的lp.screenOrientation = enableScreenRotation ? ActivityInfo.SCREEN_ORIENTATION_USER : ActivityInfo.SCREEN_ORIENTATION_NOSENSOR;就是在设置锁屏横竖屏。如果enableScreenRotation为true则屏幕根据用户拿手机方式自感应。false反之。我们在这里就是想让enableScreenRotation为true,这样锁屏才能横屏
进一步就看boolean enableScreenRotation = shouldEnableScreenRotation();然后具体看这个shouldEnableScreenRotation方法。容易看到具体的true或者false是根据lockscreen.rot_override和config_enableLockScreenRotation决定的。只要其中一个为true,enableScreenRotation的值就为true。然而config_enableLockScreenRotation的值通过查找为false,这样就需要我们修改lockscreen.rot_override的值为true,来实现目的
但是搜索整个framework代码发现,只有get此值的地方,没有set的地方。后来再看发现,此值是个SystemProperties,于是通过adb shell setprop lockscreen.rot_override也没有找到此系统参数。最后推测谷歌原生代码,并未对此参数进行设置,这也就解释了为什么不能横屏,因为shouldEnableScreenRotation一直返回的值为false。
好了原理就是这样。我们怎么实现横屏呢?就是想发放将lockscreen.rot_override设为true。
首先打开cmd 窗口,adb root 获得手机root权限。adb remount,获得写权限。adb shell setprop lockscreen.rot_override true
ok,大功告成,看效果
G. android中怎样调用系统的锁屏功能
要先注册为admin的。相关代码:
mAdminName = new ComponentName(this, MyAdmin.class);
//
public static class MyAdmin extends DeviceAdminReceiver {
// implement onEnabled(), onDisabled(), …
public void onEnabled(Context context, Intent intent) {
Log.d(LOG_TAG, "MyAdmin enabled");
}
public void onDisabled(Context context, Intent intent) {
Log.d(LOG_TAG, "MyAdmin disabled");
}
}
//第一次启动会让你手动去确认
if (!mDPM.isAdminActive(mAdminName)) {
// try to become active – must happen here in this activity,
// to get
// result
Intent intent = new Intent(
DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN,
mAdminName);
intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION,
"Additional text explaining why this needs to be added.");
startActivityForResult(intent, 1);
}
//Receiver手动在AndroidManifest.xml里面注册一下
其中添加
<meta-data android:name="android.app.device_admin"
android:resource="@xml/my_admin" />
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
</intent-filter>
还有android:permission="android.permission.BIND_DEVICE_ADMIN"
最后:在res下建立/xml/my_admin.xml,内容如下
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
<uses-policies>
<limit-password />
<watch-login />
<reset-password />
<force-lock />
<wipe-data />
</uses-policies>
</device-admin>
代码的意思在这边就不详细介绍了。如果你写成功的话就一切都明白了。
H. Android系统如何开启锁屏功能
开启Android系统的锁屏功能请选择“设置”—》选择“安全性和位置”—》选择“设置解锁图案”:(上述内容仅适用于广东联通用户)
I. android 怎么设置锁屏界面可以横竖屏切换
Android横竖屏要解决的问题应该就两个:
一.布局问题
二.重新载入问题
1.布局问题:如果不想让软件在横竖屏之间切换,最简单的办法就是在项目的AndroidManifest.xml中找到你所指定的activity中加上android:screenOrientation属性,他有以下几个参数:
"unspecified":默认值 由系统来判断显示方向.判定的策略是和设备相关的,所以不同的设备会有不同的显示方向.
"landscape":横屏显示(宽比高要长)
"portrait":竖屏显示(高比宽要长)
"user":用户当前首选的方向
"behind":和该Activity下面的那个Activity的方向一致(在Activity堆栈中的)
"sensor":有物理的感应器来决定。如果用户旋转设备这屏幕会横竖屏切换。
"nosensor":忽略物理感应器,这样就不会随着用户旋转设备而更改了("unspecified"设置除外)。
也可以在Java代码中通过setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE)来设置。
如果要让软件在横竖屏之间切换,由于横竖屏的高宽会发生转换,有可能会要求不同的布局。可以通过以下方法来切换布局:
1)在res目录下建立layout-land和layout-port目录,相应的layout文件不变,比如main.xml。layout-land是横屏的layout,layout-port是竖屏的layout,其他的不用管,模拟器会自动寻找。
2)通过 this.getResources().getConfiguration().orientation来判断当前是横屏还是竖屏然后来加载相应的 xml布局文件。因为当屏幕变为横屏的时候,系统会重新呼叫当前Activity的onCreate方法,你可以把以下方法放在你的onCreate中来检查当前的方向,然后可以让你的setContentView来载入不同的layout xml.
1 if (this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
2 Log.i("info","landscape"); // 横屏
3 }
4 else if(this.getResources().getConfiguration().orientation ==Configuration.ORIENTATION_PORTRAIT) {
5 Log.i("info","portrait"); // 竖屏
6 }
在onConfigurationChanged()方法中也可以检测拥有硬键盘的键盘状态
1 //检测实体键盘的状态:推出或者合上
2 if (newConfig.hardKeyboardHidden ==Configuration.HARDKEYBOARDHIDDEN_NO){
3 //实体键盘处于推出状态,在此处添加额外的处理代码
4 }
5 else if(newConfig.hardKeyboardHidden ==Configuration.HARDKEYBOARDHIDDEN_YES){
6 //实体键盘处于合上状态,在此处添加额外的处理代码
7 }
2.重新载入问题。如果不需要从新载入,可以在AndroidManifest.xml中加入配置 android:configChanges="orientation|keyboardHidden",配置 android:configChanges的作用就是如文档所说的:Specify one or more configuration changesthat the activity will handle itself. If not specified, the activity will berestarted if any of these configuration changes happen in the system。这样在程序中Activity就不会重复的调用onCreate()甚至不会调用onPause、onResume.只会调用一个 onConfigurationChanged(Configuration newConfig)。如果需要重新载入,则不需要做任何修改。不过如果需要在重新载入过程中保存之前的操作内容或数据,则需要保存之前的数据。然后在 activity的onCreate()中取出来。当然,如此就不能设置android:configChanges()了,否则就不会调用 onCreate()方法。
如果要彻底禁止翻转,可以设置android:screenOrientation的属性为nosensor,如此就可以忽略重力感应带来的麻烦了。不过在模拟器上不管用,在真机上是正确的。android:screenOrientation="portrait"
则无论手机如何变动,拥有这个属性的activity都将是竖屏显示。
android:screenOrientation="landscape",为横屏显示。
这里提一个小知识,Android模拟器中,快捷键"Ctrl+F11/F12"可以实现转屏
J. Android 下拉通知栏时Activity的生命周期——重新理解onPause()
在某个APP中,发现下拉通知栏的时候,正在播放的视频会暂停,于是有点好奇这段操作是不是在生命周期中实现的。在网上众多关于Activity生命周期的讨论中,很多人认为 onPause() 和 onStop() 的区别就是“部分遮挡”和“全部遮挡”,那按照这个猜测来分析一下这个过程:
首先,通知栏下拉一点点,符合一般描述中“Activity被部分遮挡”—— onPause()
然后,通知栏完全落下之后,“Activity被全部遮挡”—— onStop()
于是自己写了一个实例来验证:
启动APP时,毫无疑问,调用了 onCreate() → onStart() → onResume() ;
完全下拉通知栏,然后上拉通知栏,发现没有日志打印,说明 下拉通知栏对Activity的生命周期没有影响 。
经过测试不难发现,在Activity中弹出AlertDialog、Toast时,Activity的 onPause() 并没有调用;笔者还尝试在MIUI系统中唤醒小爱同学,发现 onPause() 仍然没有被调用。
但是在以下特殊的情况下, onPause() 会被调用:
跑去看文档发现了如下信息:
发现了 onPause() 和Activity的奇妙联系,就不难理解之前为什么没有被调用的问题了。
查看AlertDialog和Toast的源码,可以发现它们显示的原理,都是通过 WindowManager.addView() 来显示的。也就是说,AlertDialog和Toast可以看做是当前Activity的一部分View,当然也不会对Activity的生命周期构成影响。
因此, onPause() 是否调用的关键就是,是否有另一个Activity参与进来了。
而网上流传甚广的 onPause() 和 onStop() 调用中提到的“遮挡”,应该修正为 “被Activity遮挡”
至于官方文档中提到的, onPause() 之后会调用 onStop() 或者 onResume() ,前者很好理解,一般的退出、新启动一个全屏Activity、锁屏、返回HOME等操作都是这种情况;至于后者,笔者能想到的情况就是,弹出部分遮挡的Activity类型的对话框,然后按返回键。