精华内容
下载资源
问答
  • 很多用户在寻找锁屏摄像的软件下载,锁屏摄像app就是这样一款锁屏摄影软件,下载锁屏摄像app并开启后,用户无需时刻开启手机屏幕也能帮你记录身边的美好生活。软件介绍锁屏摄像app是一款好用的摄影软件,锁屏摄像app...

    很多用户在寻找锁屏摄像的软件下载,锁屏摄像app就是这样一款锁屏摄影软件,下载锁屏摄像app并开启后,用户无需时刻开启手机屏幕也能帮你记录身边的美好生活。

    软件介绍

    锁屏摄像app是一款好用的摄影软件,锁屏摄像app支持在无预览锁屏状态,录制你想拍摄的东西,可以节省您的手机电量。同时锁屏摄像app也适合作为一款行车记录仪、会议记录、名师课堂笔录等使用。锁屏摄像app录制开始及结束时的快门声以防非法偷 拍。

    功能介绍

    【锁屏录制】

    锁屏摄像app这款单机软件可在无预览状态,锁上屏幕录制高清视频。

    摩托车,单车骑手的记录仪。

    【会议记录】

    锁屏摄像app可帮您做会议记录;大型晚会录像;课堂记录;大咖讲座。

    锁屏摄像app即省电,又省心的录制下大咖们的成功格言,每一段经典的成长故事。

    帮您记录身边每一刻的美好时光。

    【记录仪】

    旧手机可利用起来做行车后方或侧面记录仪,摩托车记录仪,单车骑友记录仪。记录身边每一刻的美好影像。

    软件特色

    【高清】

    锁屏摄像app支持录制高清视频,清晰记录。

    【简单】

    锁屏摄像app简单好用,快捷记录身边的美好。

    【省电】

    使用锁屏摄像app录制视频,手机超省电。

    【记录】

    打开锁屏摄像app,无时无刻帮你记录美好生活。

    更新日志

    添加微信支付功能,未做版本更新。谢谢!

    展开全文
  • 电脑开机锁屏专家下载电脑开机锁屏专家下载电脑开机锁屏专家下载电脑开机锁屏专家下载电脑开机锁屏专家下载
  • 电脑锁屏系统软件下载,电脑锁屏系统软件下载
  • 省心锁屏(电脑锁屏软件下载) 4.0 中文免费版
  • 手势锁屏view下载

    2014-09-09 14:58:32
    android锁屏解锁手势语源码,可用于各种应用做登录认证 自绘路径点,采用3*3二维数组实现 路线判定为:滑动到那个点自动连接到那个点 所有功能都在自定义的view中实现,可以直接使用,并可根据需要添加功能。
  • 苹果专门提供了一套用于下载的方法,可以实现锁屏下载、断点续传 @interface SessionNetwork () @end 遵守里面的协议 @interface AppDelegate : UIResponder //NSURLsession下载 @property (copy) void (^...
    苹果专门提供了一套用于下载的方法,可以实现锁屏下载、断点续传
    @interface SessionNetwork ()<NSURLSessionDelegate,NSURLSessionDataDelegate,NSURLSessionTaskDelegate>
    
    @end
    遵守里面的协议
    @interface AppDelegate : UIResponder <UIApplicationDelegate>
    //NSURLsession下载
    @property (copy) void (^backgroundSessionCompletionHandler)();
    appdelegate里面添加后台任务完成调的方法
    #pragma mark -Backgrounding Methods -
    -(void)application:(UIApplication *)application handleEventsForBackgroundURLSession:(NSString *)identifier completionHandler:(void (^)())completionHandler{
        
        self.backgroundSessionCompletionHandler = completionHandler;
        
    }
    //单例类
    +(SessionNetwork *)instance{
        
        static SessionNetwork *instance = nil;
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            instance = [[self alloc]init];
            instance.downloadingArray = [NSMutableArray array];
            
        });
        
        return instance;
    }
    首先用一个单例类专门负责NSURLSessionDownloadTask的下载 
    



    - (void)addDownloadTask:(NSString *)fileName fileURL:(NSString *)fileURL
    {
        NSURL *url = [NSURL URLWithString:fileURL];
        NSURLRequest *request = [NSURLRequest requestWithURL:url];
        NSURLSessionDownloadTask *downloadTask = [[self backgroundSession] downloadTaskWithRequest:request];
        
        [downloadTask resume];
        
        NSMutableDictionary *downloadInfo = [NSMutableDictionary dictionary];
        [downloadInfo setObject:fileURL forKey:kMZDownloadKeyURL];
        [downloadInfo setObject:fileName forKey:kMZDownloadKeyFileName];
        
        NSError *error = nil;
        NSData *jsonData = [NSJSONSerialization dataWithJSONObject:downloadInfo options:NSJSONWritingPrettyPrinted error:&error];
        NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
        
        [downloadTask setTaskDescription:jsonString];
        
        [downloadInfo setObject:[NSDate date] forKey:kMZDownloadKeyStartTime];
        [downloadInfo setObject:RequestStatusDownloading forKey:kMZDownloadKeyStatus];
        [downloadInfo setObject:downloadTask forKey:kMZDownloadKeyTask];
        
    
    }
    开始一个下载任务 
    
    暂停或恢复任务
    -(void)PauseOrResumeDownloadTaskWithS9ID:(NSString *)s9id{
        
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
                       , ^{
                           NSLog(@"Pause download book with s9id");
                           
                           NSMutableArray *tempArray = [downloadingArray copy];
                           for(NSMutableDictionary *downloadInfo in tempArray)
                           {
                               if ([[downloadInfo objectForKey:kMZDownloadKeyFileName] isEqual:s9id])
                               {
                                   
                                   NSURLSessionDownloadTask *downloadTask = [downloadInfo objectForKey:kMZDownloadKeyTask];
                                   NSString *downloadingStatus = [downloadInfo objectForKey:kMZDownloadKeyStatus];
                                   NSInteger indexOfObject = [tempArray indexOfObject:downloadInfo];
                                   if([downloadingStatus isEqualToString:RequestStatusDownloading])
                                   {
                                       [downloadTask suspend];
                                       [downloadInfo setObject:RequestStatusPaused forKey:kMZDownloadKeyStatus];
                                       [downloadInfo setObject:[NSDate date] forKey:kMZDownloadKeyStartTime];
                                       
                                       [downloadingArray replaceObjectAtIndex:indexOfObject   withObject:downloadInfo];
                                       
                                   }else if([downloadingStatus isEqualToString:RequestStatusPaused])
                                   {
                                       [downloadTask resume];
                                       [downloadInfo setObject:RequestStatusDownloading forKey:kMZDownloadKeyStatus];
                                       
                                       [downloadingArray replaceObjectAtIndex:indexOfObject withObject:downloadInfo];
                                       
                                   }
                                   else
                                   {
                                       [downloadTask resume];
                                       [downloadInfo setObject:RequestStatusDownloading forKey:kMZDownloadKeyStatus];
                                       [downloadInfo setObject:[NSDate date] forKey:kMZDownloadKeyStartTime];
                                       [downloadInfo setObject:downloadTask forKey:kMZDownloadKeyTask];
                                       
                                       [downloadingArray replaceObjectAtIndex:indexOfObject withObject:downloadInfo];
                                       
                                   }
                                   
                                   
                                   
                               }
                               
                                                          
                           }
            
                           
            });
        
    
    
    }
    
    
    
    

    #pragma mark - NSURLSession Delegates -
    //下载过程中写入数据的回调方法,在里面更新进度条的显示
     - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didWriteData:(int64_t)bytesWritten totalBytesWritten:(int64_t)totalBytesWritten totalBytesExpectedToWrite:(int64_t)totalBytesExpectedToWrite
    {
        for(NSMutableDictionary *downloadDict in downloadingArray)
        {
            if([downloadTask isEqual:[downloadDict objectForKey:kMZDownloadKeyTask]])
            {
                dispatch_async(dispatch_get_main_queue(), ^{
                    float progress = (double)downloadTask.countOfBytesReceived/(double)downloadTask.countOfBytesExpectedToReceive;
                     NSLog(@"progress=%f s9id=%@",progress,[downloadDict objectForKey:kMZDownloadKeyFileName]);
                     NSString *fileName = [downloadDict objectForKey:kMZDownloadKeyFileName];
                     [[NSNotificationCenter defaultCenter]postNotificationName:fileName object:@(progress)];
                     NSTimeInterval downloadTime = -1 * [[downloadDict objectForKey:kMZDownloadKeyStartTime] timeIntervalSinceNow];
                    
                    float speed = totalBytesWritten / downloadTime;
                    
    //                NSInteger indexOfDownloadDict = [downloadingArray indexOfObject:downloadDict];
    //                NSIndexPath *indexPathToRefresh = [NSIndexPath indexPathForRow:indexOfDownloadDict inSection:0];
    //                MZDownloadingCell *cell = (MZDownloadingCell *)[bgDownloadTableView cellForRowAtIndexPath:indexPathToRefresh];
    //                
    //                [cell.progressDownload setProgress:progress];
                    
                    NSMutableString *remainingTimeStr = [[NSMutableString alloc] init];
                    
                    unsigned long long remainingContentLength = totalBytesExpectedToWrite - totalBytesWritten;
                    
                    int remainingTime = (int)(remainingContentLength / speed);
                    int hours = remainingTime / 3600;
                    int minutes = (remainingTime - hours * 3600) / 60;
                    int seconds = remainingTime - hours * 3600 - minutes * 60;
                    
                    if(hours>0)
                        [remainingTimeStr appendFormat:@"%d Hours ",hours];
                    if(minutes>0)
                        [remainingTimeStr appendFormat:@"%d Min ",minutes];
                    if(seconds>0)
                        [remainingTimeStr appendFormat:@"%d sec",seconds];
                    
    
                });
                break;
            }
        }
    }
    //下载完成后将文件从临时文件夹中移动到最终文件夹中,并且改一下文件名,需要解压的解压
     - (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)downloadTask didFinishDownloadingToURL:(NSURL *)location
    {
        for(NSMutableDictionary *downloadInfo in downloadingArray)
        {
            NSInteger indexOfObject = [downloadingArray indexOfObject:downloadInfo];
            if([[downloadInfo objectForKey:kMZDownloadKeyTask] isEqual:downloadTask])
            {
                NSString *fileName = [downloadInfo objectForKey:kMZDownloadKeyFileName];
                NSString *destinationPath = [RBUtilsObject filePathString:fileName];
                NSURL *fileURL = [NSURL fileURLWithPath:destinationPath];
                NSLog(@"directory Path = %@",destinationPath);
               
                [downloadingArray removeObjectAtIndex:indexOfObject];
    
                if (location) {
                    NSError *error = nil;
                    if ([[NSFileManager defaultManager] fileExistsAtPath:destinationPath]) {
                        [[NSFileManager defaultManager] removeItemAtPath:destinationPath error:&error];
                    }
                    [[NSFileManager defaultManager] moveItemAtURL:location toURL:fileURL error:&error];
                    if (error) {
                        [MZUtility showAlertViewWithTitle:kAlertTitle msg:error.localizedDescription];
                    }
                    else {
                       [self performSelectorInBackground:@selector(unzipAndUncryptWithS9id:) withObject:fileName];
                    }
                }
                break;
            }
        }
    }
    - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(NSError *)error
    {
        NSInteger errorReasonNum = [[error.userInfo objectForKey:@"NSURLErrorBackgroundTaskCancelledReasonKey"] integerValue];
        
        if([error.userInfo objectForKey:@"NSURLErrorBackgroundTaskCancelledReasonKey"] &&
           (errorReasonNum == NSURLErrorCancelledReasonUserForceQuitApplication ||
            errorReasonNum == NSURLErrorCancelledReasonBackgroundUpdatesDisabled))
        {
            NSString *taskInfo = task.taskDescription;
            
            NSError *Descriptionerror = nil;
            NSData *taskDescription = [taskInfo dataUsingEncoding:NSUTF8StringEncoding];
            NSMutableDictionary *taskInfoDict = [[NSJSONSerialization JSONObjectWithData:taskDescription options:NSJSONReadingAllowFragments error:&Descriptionerror] mutableCopy];
            
            if(Descriptionerror)
                NSLog(@"Error while retreiving json value: %@",Descriptionerror);
            
            NSString *fileName = [taskInfoDict objectForKey:kMZDownloadKeyFileName];
            NSString *fileURL = [taskInfoDict objectForKey:kMZDownloadKeyURL];
            
            NSMutableDictionary *downloadInfo = [[NSMutableDictionary alloc] init];
            [downloadInfo setObject:fileName forKey:kMZDownloadKeyFileName];
            [downloadInfo setObject:fileURL forKey:kMZDownloadKeyURL];
            
            
            NSData *resumeData = [error.userInfo objectForKey:NSURLSessionDownloadTaskResumeData];
    
            NSURL *url = [NSURL URLWithString:fileURL];
            NSURLRequest *request = [NSURLRequest requestWithURL:url];
            NSURLSessionDownloadTask *downloadTask = [[self backgroundSession] downloadTaskWithRequest:request];
            
            [downloadTask resume];
            
            [downloadTask setTaskDescription:taskInfo];
            
    //        [task suspend];
            
            [downloadInfo setObject:downloadTask forKey:kMZDownloadKeyTask];
            
            [self.downloadingArray addObject:downloadInfo];
    //        dispatch_async(dispatch_get_main_queue(), ^{
                [self.bgDownloadTableView reloadData];
                [self dismissAllActionSeets];
                
                BookDao *dao = [BookDao new];
                User *user = [UserDao getCurrentUser];
                Book *book = [dao getBookWithS9ID:fileName andUserAccount:user.account];
                //根据书的下载状态来恢复或暂停
                NSError *saveError = nil;
    //            if ([book.bookStatus isEqualToString:@"k_Downloading"]){
    //                [[NSNotificationCenter defaultCenter] postNotificationName:@"k_Pause" object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:book.s9id,@"S9ID", nil]];
                    book.bookStatus = @"k_Downloading";
                    [dao.dbManager.managedObjectContext save:&saveError];
                    if (saveError){
                        NSLog(@"saveError=%@",[saveError localizedDescription]);
                    }
                    
    //            }
                else if([book.bookStatus isEqualToString:@"k_Pause"]){
    
    //                [[NSNotificationCenter defaultCenter] postNotificationName:@"k_Pause" object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:book.s9id,@"S9ID",book.bookURL,@"bookDownloadURL", nil]];
                    book.bookStatus = @"k_Downloading";
                    [dao.dbManager.managedObjectContext save:&saveError];
                    if (saveError){
                        NSLog(@"saveError=%@",[saveError localizedDescription]);
                    }
                }
    //
    //            
    //        });
            return;
        }
        for(NSMutableDictionary *downloadInfo in downloadingArray)
        {
            if([[downloadInfo objectForKey:kMZDownloadKeyTask] isEqual:task])
            {
                NSInteger indexOfObject = [downloadingArray indexOfObject:downloadInfo];
                
                if(error)
                {
                    if(error.code != NSURLErrorCancelled)
                    {
                        
                        NSString *taskInfo = task.taskDescription;
                        
                        NSError *Descriptionerror = nil;
                        NSData *taskDescription = [taskInfo dataUsingEncoding:NSUTF8StringEncoding];
                        NSMutableDictionary *taskInfoDict = [[NSJSONSerialization JSONObjectWithData:taskDescription options:NSJSONReadingAllowFragments error:&Descriptionerror] mutableCopy];
                        NSString *fileName = [taskInfoDict objectForKey:kMZDownloadKeyFileName];
                        
                        
                        
                        NSData *resumeData = [error.userInfo objectForKey:NSURLSessionDownloadTaskResumeData];
                        if(resumeData)
                            task = [[self backgroundSession] downloadTaskWithResumeData:resumeData];
                        else
                            task = [[self backgroundSession] downloadTaskWithURL:[NSURL URLWithString:[downloadInfo objectForKey:kMZDownloadKeyURL]]];
                        [task setTaskDescription:taskInfo];
                        
                        [downloadInfo setObject:RequestStatusFailed forKey:kMZDownloadKeyStatus];
                        [downloadInfo setObject:(NSURLSessionDownloadTask *)task forKey:kMZDownloadKeyTask];
                        
                        [downloadingArray replaceObjectAtIndex:indexOfObject withObject:downloadInfo];
                        
                        dispatch_async(dispatch_get_main_queue(), ^{
                            [MZUtility showAlertViewWithTitle:kAlertTitle msg:error.localizedDescription];
    //                        [[NSNotificationCenter defaultCenter] postNotificationName:@"n_book_download_fail" object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:[downloadInfo objectForKey:kMZDownloadKeyFileName],@"S9ID", nil]];
    //                        [self.bgDownloadTableView reloadData];
    //                        [self dismissAllActionSeets];
                            
                                        BookDao *dao = [BookDao new];
                                        User *user = [UserDao getCurrentUser];
                                        Book *book = [dao getBookWithS9ID:fileName andUserAccount:user.account];
                                        //根据书的下载状态来恢复或暂停
                                        NSError *saveError = nil;
                                        if ([book.bookStatus isEqualToString:@"k_Downloading"]){
                            //                [[NSNotificationCenter defaultCenter] postNotificationName:@"k_Pause" object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:book.s9id,@"S9ID", nil]];
                                            book.bookStatus = @"k_Pause";
                                            [dao.dbManager.managedObjectContext save:&saveError];
                                            if (saveError){
                                                NSLog(@"saveError=%@",[saveError localizedDescription]);
                                            }
                            
                                        }else if([book.bookStatus isEqualToString:@"k_Pause"]){
                            
                            //                [[NSNotificationCenter defaultCenter] postNotificationName:@"k_Pause" object:nil userInfo:[NSDictionary dictionaryWithObjectsAndKeys:book.s9id,@"S9ID",book.bookURL,@"bookDownloadURL", nil]];
                                            book.bookStatus = @"k_Downloading";
                                            [dao.dbManager.managedObjectContext save:&saveError];
                                            if (saveError){
                                                NSLog(@"saveError=%@",[saveError localizedDescription]);
                                            }
                                        }
                                        [[NSNotificationCenter defaultCenter] postNotificationName:@"RefreshBookShelf" object:nil];
                            
                        });
                    }
                }
                else
                {
                    dispatch_async(dispatch_get_main_queue(), ^{
                        NSString *fileName = [[downloadInfo objectForKey:kMZDownloadKeyFileName] copy];
                        [downloadingArray removeObjectAtIndex:indexOfObject];
                        
    //                    NSIndexPath *indexPath = [NSIndexPath indexPathForRow:indexOfObject inSection:0];
    //                    [bgDownloadTableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationLeft];
    //                    [self performSelectorInBackground:@selector(unzipAndUncryptWithS9id:) withObject:fileName];
                        
                        if([self.delegate respondsToSelector:@selector(downloadRequestFinished:)])
                            [self.delegate downloadRequestFinished:fileName];
                        
    //                    [self dismissAllActionSeets];
                    });
                }
                break;
            }
        }
    }
    //后台任务结束时告诉你
     - (void)URLSessionDidFinishEventsForBackgroundURLSession:(NSURLSession *)session
    {
        AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
        if (appDelegate.backgroundSessionCompletionHandler) {
            void (^completionHandler)() = appDelegate.backgroundSessionCompletionHandler;
            appDelegate.backgroundSessionCompletionHandler = nil;
            completionHandler();
        }
        
        NSLog(@"All tasks are finished");
    }
    
    
    还有关键的一步,确定任务类型是否是后台任务
    - (NSURLSession *)backgroundSession
    {
        static NSURLSession *session = nil;
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
    //        NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration backgroundSessionConfiguration:@"com.iosDevelopment.VDownloader.SimpleBackgroundTransfer.BackgroundSession"];
            
            NSURLSessionConfiguration *sessionConfig;
            
            if ([[[UIDevice currentDevice] systemVersion] floatValue] >=8.0f)
            {
                sessionConfig =[NSURLSessionConfiguration backgroundSessionConfigurationWithIdentifier:@"downloads"];
            }
            else
            {
                sessionConfig = [NSURLSessionConfiguration backgroundSessionConfiguration:@"downloads"];
            }
                    
            session = [NSURLSession sessionWithConfiguration:sessionConfig delegate:self delegateQueue:nil];
        });
        return session;
    }
    
     





    展开全文
  • C#锁屏程序源码下载

    2011-07-29 16:10:38
    C#锁屏程序源码 ...友情提示:本程序功能需要完善,欢迎广大朋友下载使用,读者可以将本程序与数据库连接,用来设置管理密码等信息,本程序密码 比较死板,写在程序中,望广大朋友将其补充完善!!
  • 我发现现在的windows 锁屏的文件真的ti哪个好看的。 比如下面的几张 那么我们如何下载这些图片呢?这些图片在哪里呢? 在资源管理器地址栏中输入以下的地址,其中%username%是你的用户名,把它替换就好了 C:\...

    我发现现在的windows 锁屏的文件真的ti哪个好看的。

    比如下面的几张

    那么我们如何下载这些图片呢?这些图片在哪里呢?

    在资源管理器地址栏中输入以下的地址,其中%username%是你的用户名,把它替换就好了

    C:\Users\%username%\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets\ 

    我们进去这个文件夹可以看到以下文件

    我们现在是查看不了这些图片的,我们只需在文件名后边加上.png的文件后缀就可以使用图片软件查看了。

    笨一点的办法当然可以手动的把每个文件后边添加.png就可以了

    当然这不符合我们批量操作的精神(偷懒的精神)

    我们可以在当前目录下使用 linux 命令操作(linux 子系统,或者使用安装git;使用右键git bash here)

    就可以批量操作啦!!!变成图片啦!!!

    展开全文
  • 电脑桌面锁屏工具是由MX(梦星)所制作,绿色免费,小巧可爱,是你理想的锁屏软件!   电脑桌面锁屏工具特点: 1.本软件仅使用于任何系统的PC(电脑)如:Win7 Windows等系统。 2.本软件仅在使用者有需要离开时...
  • 最近在开发项目的时候遇到电脑锁屏问题,因此总结了几个锁屏工具供大家使用!
  • Android锁屏

    2018-01-22 17:00:24
    简单的实现Android锁屏功能,下载即可使用
  • Android一键锁屏源码

    2014-05-09 22:09:00
    APK下载 源程序下载 锁屏流程如下(参考于Android一键锁屏开发全过程【源码】【附图】) 源码参考于一键锁屏 源码 一共有2个Java文件: 1 package com.example.onekeylock.app; 2 3 import ...

    APK下载

    源程序下载

     

    锁屏流程如下(参考于Android一键锁屏开发全过程【源码】【附图】

     

    源码参考于一键锁屏 源码

    一共有2个Java文件:

    1 package com.example.onekeylock.app;
    2 
    3 import android.app.admin.DeviceAdminReceiver;
    4 
    5 public class AdminReceiver extends DeviceAdminReceiver{}
    AdminReceiver.java

     

     1 package com.example.onekeylock.app;
     2 
     3 import android.app.Activity;
     4 import android.app.admin.DevicePolicyManager;
     5 import android.content.ComponentName;
     6 import android.content.Context;
     7 import android.content.Intent;
     8 import android.os.Bundle;
     9 import android.support.v7.app.ActionBarActivity;
    10 
    11 public class MainActivity extends ActionBarActivity
    12 {
    13     private DevicePolicyManager policyManager;
    14     private ComponentName componentName;
    15     private static final int MY_REQUEST_CODE = 9999;
    16 
    17     @Override
    18     protected void onCreate(Bundle savedInstanceState)
    19     {
    20         super.onCreate(savedInstanceState);
    21         //获取设备管理服务
    22         policyManager = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE);
    23         componentName = new ComponentName(this, AdminReceiver.class);
    24         /*
    25         * 假如先判断是否有权限,如果没有则调用activeManage(),然后立即锁屏,再finish()。
    26         * 这样做是有问题的,因为activeManage()可能还在等待另一个Activity的结果,那么此时依然没有权限却
    27         * 执行了lockNow(),这样就出错了。
    28         * 处理方法有2个:
    29         * 1、是重写OnActivityResult()函数,在里面判断是否获取权限成功,是则锁屏并finish()
    30         * 否则继续调用activeManage()获取权限(这样激活后立即锁屏,效果很好)
    31         * 2、不重写OnActivityResult()函数,第一次获取权限后不锁屏而立即finish(),这样从理论上说也可能
    32         * 失败,可能权限还没获取好就finish了(这样激活后就回到桌面,还得再按一次锁屏才能锁)
    33         * 综上推荐第一种方法。*/
    34 
    35         //判断是否有锁屏权限,若有则立即锁屏并结束自己,若没有则获取权限
    36         if (policyManager.isAdminActive(componentName))
    37         {
    38             policyManager.lockNow();
    39             finish();
    40         }
    41         else
    42         {
    43             activeManage();
    44         }
    45         setContentView(R.layout.activity_main); //把这句放在最后,这样锁屏的时候就不会跳出来(闪一下)
    46     }
    47 
    48     //获取权限
    49     private void activeManage()
    50     {
    51         // 启动设备管理(隐式Intent) - 在AndroidManifest.xml中设定相应过滤器
    52         Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN);
    53 
    54         //权限列表
    55         intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName);
    56 
    57         //描述(additional explanation)
    58         intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, "激活后才能使用锁屏功能哦亲^^");
    59 
    60         startActivityForResult(intent, MY_REQUEST_CODE);
    61     }
    62 
    63     @Override
    64     protected void onActivityResult(int requestCode, int resultCode, Intent data)
    65     {
    66         //获取权限成功,立即锁屏并finish自己,否则继续获取权限
    67         if (requestCode == MY_REQUEST_CODE && resultCode == Activity.RESULT_OK)
    68         {
    69             policyManager.lockNow();
    70             finish();
    71         }
    72         else
    73         {
    74             activeManage();
    75         }
    76         super.onActivityResult(requestCode, resultCode, data);
    77     }
    78 }
    MainActivity.java

     

    布局文件:

    1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    2     android:layout_width="fill_parent"
    3     android:layout_height="fill_parent">
    4 </RelativeLayout>
    activity_main.xml

     

    这个是获取权限时显示的权限列表

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <device-admin
     3     xmlns:android="http://schemas.android.com/apk/res/android"
     4     android:layout_width="match_parent"
     5     android:layout_height="match_parent">
     6     <uses-policies>
     7         <!--强制锁屏-->
     8         <force-lock/>
     9     </uses-policies>
    10 </device-admin>
    lock.xml

     

    修改原来的styles.xml

    1 <resources>
    2     <!-- Base application theme. -->
    3     <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    4         <!-- Customize your theme here. -->
    5         <item name="android:windowNoTitle">true</item>
    6         <item name="android:windowIsTranslucent">true</item>
    7     </style>
    8 </resources>
    styles.xml

     

    配置文件

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     3           package="com.example.onekeylock.app">
     4     <application
     5         android:allowBackup="true"
     6         android:icon="@drawable/onekeylock"
     7         android:label="@string/app_name"
     8         android:theme="@style/AppTheme">
     9         <activity
    10             android:name="com.example.onekeylock.app.MainActivity"
    11             android:label="@string/app_name">
    12             <intent-filter>
    13                 <action android:name="android.intent.action.MAIN"/>
    14                 <category android:name="android.intent.category.LAUNCHER"/>
    15             </intent-filter>
    16         </activity>
    17         <receiver
    18             android:name=".AdminReceiver"
    19             android:label="@string/app_name"
    20             android:description="@string/app_name"
    21             android:permission="android.permission.BIND_DEVICE_ADMIN">
    22             <meta-data
    23                 android:name="android.app.device_admin"
    24                 android:resource="@layout/lock"/>
    25             <intent-filter>
    26                 <action
    27                     android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
    28             </intent-filter>
    29         </receiver>
    30     </application>
    31 </manifest>
    AndroidManifest.xml

     

    一个Activity,打开来默认是显示它的TitleBar(标题栏)的,而锁屏的原理就是先打开Activity,再启动锁屏功能,最后把自己结束掉。

    而最难的部分在于,当打开软件的时候,该软件会出现闪屏(闪现标题栏),然后才锁屏。

    一个比较好的解决方法是把该Activity设置为透明的,这样即使出现标题栏也看不到。

    网上大部分代码是这样解决的,在配置文件中,为Activity标签添加一个属性android:theme=@android:style/Theme.Translucent

    但是由于我新建项目的时候为该项目选择了系统自带的主题(Theme.AppCompat.Light.DarkActionBar),所以配置文件中,Application标签已经声明了主题(见下图),如果继续在Activity中添加主题的话会运行出错!

    OK,那我把Application的主题删了,只为Activity配置透明主题行了吧………………可是还是运行出错!没深入研究过Android,所以不知怎么会这样……

     

    最后磕磕碰碰,摸索出一个方法,修改Application的主题,添加下面2句(只添加1句透明的应该也行,没试过)

     

    至此,终于不再闪屏了……

    转载于:https://www.cnblogs.com/chenyg32/p/3719714.html

    展开全文
  • 很不错的一款锁屏软件,界面简单,而且不用安装,可以试试,确实很不错,共享给你们了
  • 用户除了在各大应用市场下载应用外,近年也流行在赚钱类锁屏下载应用,一方面满足所需应用的需求,另一方面又可通过体验里面各种应用从而获得广告主返现广告费。  现在小编选了三款目前市面比较受欢迎的锁屏赚钱...
  • 阳光系统下载 Win7电脑锁屏壁纸怎么设置 如果我们在使用电脑的过程中,如果暂时离开了电脑,系统就会自动进入锁屏状态,但是一些用户觉得默认的锁屏壁纸太单调,没有任何美观可言。那么Win7电脑锁屏壁纸怎么设置?...
  • 拥有多种锁屏时钟样式,软件使用界面精致简洁,锁屏也能够看时间,拥有多种时钟颜色可以选择,还可以添加各种提醒服务,到点即可提醒用户,使用方法简单, 拥有多种显示模式,需要的伙伴,西西下载使用吧!...
  • 计算机锁屏专家 用于锁屏下载后请用杀毒软件杀毒!
  • 电脑锁屏系统小张绿色软件安装快,使用方便,纯绿色版,
  • 锁屏摄像是不少小伙伴都比较需要用到的一款手机软件,可以在手机锁屏的时候,为... 1、下载锁屏摄像”手机版APP(点击下载) 2、下载完成后,打开软件,然后点击右上角的“注册” 3、根据要求填写相关的注册...
  • Windows锁屏软件

    2020-10-11 22:31:44
    这是一款简单的windows锁屏软件,采用wpf开发。默认账号administrator 密码123456。支持一键锁屏,修改账户密码等功能。欢迎下载体验。
  • 而且相册里会多出来很多杂志锁屏自动下载的壁纸。有些人喜欢有些人不喜欢。如何关闭或者设置只下载自己喜欢的壁纸呢?​第一步:固定当前图片手机锁屏,按一下亮屏,先不要解锁,从屏幕底部往上拉动。这时候会出现很...
  • 锁屏”后和配置文件一起发给对方那对方又不知道如何解锁那么的话就麻烦了, 不懂电脑的就只能重装了,所以我已在程序中做了处理,基本上不存在这种可 能了,希望大家不会拿来恶搞。 =============================...
  • Windows聚焦(Windows Spotlight)是Windows 10里边新增的一个锁屏壁纸功能,开启后会在每次开机登录时显示不同的背景,不少用户在看到精美的图片后,十分希望下载至本地保存,但是苦于找不到路径。我们现在就为大家...
  • 单词锁屏安卓

    热门讨论 2015-06-15 21:10:23
    几个同学写的一个单词锁屏锁屏开启后屏保上会出现单词。压缩文件中国有源代码可以下载,欢迎交流。
  • Android锁屏代码

    2018-06-05 14:21:30
    安卓锁屏代码,简单的一个小Demo,大家可以下载下来试一试!
  • 首先,确保你的 Windows ...不过微软并没有提供锁屏壁纸的下载或保存功能,而且这些壁纸也被隐藏起来,我们还得自己动手。 按下键盘的「Win+R」,调出“运行”窗口,然后输入下面的路径并点确定: %localappdata%\
  • 安卓锁屏软件

    2013-01-02 19:10:47
    安卓锁屏,一键锁屏,解放开关键。挺好用的,值得下载
  • 一键锁屏apk

    2018-01-05 13:48:22
    一键锁屏apk ,欢迎下载。博客地址:http://blog.csdn.net/likesyour
  • Win10的锁屏界面有时候挺好看的,要是能拿来当壁纸就好了........ 锁屏壁纸?拿来当桌面?放着我来!! 先看一下Windows锁屏壁纸应该在哪里设置: 桌面空白处右击,选择个性化,在锁屏界面即可看到背景预览,...
  • 三星光感锁屏

    2014-03-20 12:41:52
    三星手机智能锁屏应用,适用与三星智能手机用户,可以下载试试

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 775
精华内容 310
关键字:

下载锁屏