获取手机电池状态,手机内存总容量大小,当前可用容量,手机IP地址,手机当前所连接Wi-Fi的名称
来源:互联网 发布:手机cms 编辑:程序博客网 时间:2024/06/02 07:29
闲来没事 研究一写开发中不常用的知识,直接上代码
// ViewController.m
// GetMemory
//
// Created by 冯闯 on 17/4/25.
// Copyright © 2017年冯闯. All rights reserved.
//
#import "ViewController.h"
#include <sys/mount.h>//获取手机磁盘容量
#import <SystemConfiguration/CaptiveNetwork.h>//获取手机当前Wi-Fi名称
#import <ifaddrs.h>//获取手机IP
#import <arpa/inet.h>//获取手机IP
#define USER_APP_PATH @“/ User / Applications /”
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self getTotalDiskSize];
[self getAvailableDiskSize];
[self getWifiName];
[self getvsion];
[self deviceIPAdress];
[self getBatteryQuantity];
}
//******************************************************
//获取手机磁盘总容量
-(long long)getTotalDiskSize
{
struct statfs buf;
unsigned long long freeSpace = -1;
if (statfs("/var", &buf) >=0)
{
freeSpace = (unsignedlong long)(buf.f_bsize* buf.f_blocks);
}
NSLog(@"手机总容量%@",[selffileSizeToString:freeSpace]);
return freeSpace;
}
//获取手机磁盘当前可用容量
-(long long)getAvailableDiskSize
{
struct statfs buf;
unsigned long long freeSpace = -1;
if (statfs("/var", &buf) >=0)
{
freeSpace = (unsignedlong long)(buf.f_bsize * buf.f_bavail);
}
NSLog(@"手机可用容量%@",[selffileSizeToString:freeSpace]);
return freeSpace;
}
-(NSString *)fileSizeToString:(unsignedlong long)fileSize
{
NSInteger KB = 1024;
NSInteger MB = KB*KB;
NSInteger GB = MB*KB;
if (fileSize < 10) {
return @"0 B";
}else if (fileSize < KB) {
return @"< 1 KB";
}else if (fileSize < MB) {
return [NSString stringWithFormat:@"%.1f KB",((CGFloat)fileSize)/KB];
}else if (fileSize < GB) {
return [NSString stringWithFormat:@"%.1f MB",((CGFloat)fileSize)/MB];
}else {
return [NSString stringWithFormat:@"%.1f GB",((CGFloat)fileSize)/GB];
}
}
//******************************************************
//获取手机当前所连接Wi-Fi的名称
- (NSString *)getWifiName
{
NSString *wifiName = nil;
CFArrayRef wifiInterfaces = CNCopySupportedInterfaces();
if (!wifiInterfaces) {
return nil;
}
NSArray *interfaces = (__bridgeNSArray *)wifiInterfaces;
for (NSString *interfaceName in interfaces) {
CFDictionaryRefdictRef = CNCopyCurrentNetworkInfo((__bridgeCFStringRef)(interfaceName));
if (dictRef) {
NSDictionary*networkInfo = (__bridgeNSDictionary *)dictRef;
wifiName = [networkInfo objectForKey:(__bridgeNSString *)kCNNetworkInfoKeySSID];
CFRelease(dictRef);
}
}
CFRelease(wifiInterfaces);
NSLog(@"手机连接Wi-Fi名称是:%@",wifiName);
return wifiName;
}
//******************************************************
//获取手机当前系统版本
-(CGFloat)getvsion{
CGFloat vsion = [[[UIDevicecurrentDevice]systemVersion]floatValue] ;
NSLog(@"手机系用版本:%f",vsion);
return vsion;
}
//******************************************************
//获取手机IP
- (NSString *)deviceIPAdress {
NSString *address = @"an error occurred when obtaining ip address";
struct ifaddrs *interfaces =NULL;
struct ifaddrs *temp_addr =NULL;
int success = 0;
success = getifaddrs(&interfaces);
if (success == 0) {// 0 表示获取成功
temp_addr = interfaces;
while (temp_addr != NULL) {
if( temp_addr->ifa_addr->sa_family== AF_INET) {
// Check if interface is en0 which is the wifi connection on the iPhone
if ([[NSString stringWithUTF8String:temp_addr->ifa_name]isEqualToString:@"en0"]) {
// Get NSString from C String
address = [NSStringstringWithUTF8String:inet_ntoa(((structsockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
}
}
temp_addr = temp_addr->ifa_next;
}
}
freeifaddrs(interfaces);
NSLog(@"手机IP地址:%@",address);
return address;
}
//******************************************************
//获取电池电量
-(CGFloat)getBatteryQuantity
{
NSLog(@"手机当前电量:%f",[[UIDevicecurrentDevice] batteryLevel]);
return [[UIDevice currentDevice] batteryLevel];
}
//
// Created by 冯闯 on 17/4/25.
// Copyright © 2017年冯闯. All rights reserved.
//
#import "ViewController.h"
#include <sys/mount.h>//获取手机磁盘容量
#import <SystemConfiguration/CaptiveNetwork.h>//获取手机当前Wi-Fi名称
#import <ifaddrs.h>//获取手机IP
#import <arpa/inet.h>//获取手机IP
#define USER_APP_PATH @“/ User / Applications /”
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self getTotalDiskSize];
[self getAvailableDiskSize];
[self getWifiName];
[self getvsion];
[self deviceIPAdress];
[self getBatteryQuantity];
}
//******************************************************
//获取手机磁盘总容量
-(long long)getTotalDiskSize
{
struct statfs buf;
unsigned long long freeSpace = -1;
if (statfs("/var", &buf) >=0)
{
freeSpace = (unsignedlong long)(buf.f_bsize* buf.f_blocks);
}
NSLog(@"手机总容量%@",[selffileSizeToString:freeSpace]);
return freeSpace;
}
//获取手机磁盘当前可用容量
-(long long)getAvailableDiskSize
{
struct statfs buf;
unsigned long long freeSpace = -1;
if (statfs("/var", &buf) >=0)
{
freeSpace = (unsignedlong long)(buf.f_bsize * buf.f_bavail);
}
NSLog(@"手机可用容量%@",[selffileSizeToString:freeSpace]);
return freeSpace;
}
-(NSString *)fileSizeToString:(unsignedlong long)fileSize
{
NSInteger KB = 1024;
NSInteger MB = KB*KB;
NSInteger GB = MB*KB;
if (fileSize < 10) {
return @"0 B";
}else if (fileSize < KB) {
return @"< 1 KB";
}else if (fileSize < MB) {
return [NSString stringWithFormat:@"%.1f KB",((CGFloat)fileSize)/KB];
}else if (fileSize < GB) {
return [NSString stringWithFormat:@"%.1f MB",((CGFloat)fileSize)/MB];
}else {
return [NSString stringWithFormat:@"%.1f GB",((CGFloat)fileSize)/GB];
}
}
//******************************************************
//获取手机当前所连接Wi-Fi的名称
- (NSString *)getWifiName
{
NSString *wifiName = nil;
CFArrayRef wifiInterfaces = CNCopySupportedInterfaces();
if (!wifiInterfaces) {
return nil;
}
NSArray *interfaces = (__bridgeNSArray *)wifiInterfaces;
for (NSString *interfaceName in interfaces) {
CFDictionaryRefdictRef = CNCopyCurrentNetworkInfo((__bridgeCFStringRef)(interfaceName));
if (dictRef) {
NSDictionary*networkInfo = (__bridgeNSDictionary *)dictRef;
wifiName = [networkInfo objectForKey:(__bridgeNSString *)kCNNetworkInfoKeySSID];
CFRelease(dictRef);
}
}
CFRelease(wifiInterfaces);
NSLog(@"手机连接Wi-Fi名称是:%@",wifiName);
return wifiName;
}
//******************************************************
//获取手机当前系统版本
-(CGFloat)getvsion{
CGFloat vsion = [[[UIDevicecurrentDevice]systemVersion]floatValue] ;
NSLog(@"手机系用版本:%f",vsion);
return vsion;
}
//******************************************************
//获取手机IP
- (NSString *)deviceIPAdress {
NSString *address = @"an error occurred when obtaining ip address";
struct ifaddrs *interfaces =NULL;
struct ifaddrs *temp_addr =NULL;
int success = 0;
success = getifaddrs(&interfaces);
if (success == 0) {// 0 表示获取成功
temp_addr = interfaces;
while (temp_addr != NULL) {
if( temp_addr->ifa_addr->sa_family== AF_INET) {
// Check if interface is en0 which is the wifi connection on the iPhone
if ([[NSString stringWithUTF8String:temp_addr->ifa_name]isEqualToString:@"en0"]) {
// Get NSString from C String
address = [NSStringstringWithUTF8String:inet_ntoa(((structsockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
}
}
temp_addr = temp_addr->ifa_next;
}
}
freeifaddrs(interfaces);
NSLog(@"手机IP地址:%@",address);
return address;
}
//******************************************************
//获取电池电量
-(CGFloat)getBatteryQuantity
{
NSLog(@"手机当前电量:%f",[[UIDevicecurrentDevice] batteryLevel]);
return [[UIDevice currentDevice] batteryLevel];
}
@end
0 0
- 获取手机电池状态,手机内存总容量大小,当前可用容量,手机IP地址,手机当前所连接Wi-Fi的名称
- 获取手机内存、SD卡总容量和剩余容量
- 获取手机当前ip地址
- 获取当前连接Wifi的手机ip地址
- 获取手机系统大小、可用空间大小,设备可用内存及当前应用所占内存等
- 获取手机系统大小、可用空间大小,设备可用内存及当前应用所占内存等
- 获取iOS设备信息(内存/电量/容量/型号/IP地址/当前WIFI名称)
- 获取iOS设备信息(内存/电量/容量/型号/IP地址/当前WIFI名称)
- 获取iOS设备信息(内存/电量/容量/型号/IP地址/当前WIFI名称)
- 获取android手机当前ip地址
- 获取当前Wi-Fi 名称
- 获取Android手机SD卡容量大小
- Android获取SD卡总容量,可用大小,机身内存总容量及可用大小的系统方法
- Android获取SD卡总容量,可用大小,机身内存总容量及可用大小的系统方法
- Android获取SD卡总容量,可用大小,机身内存总容量及可用大小的系统方法
- Android获取SD卡总容量,可用大小,机身内存总容量及可用大小的系统方法
- Android获取SD卡总容量,可用大小,机身内存总容量及可用大小的系统方法
- Android获取SD卡总容量,可用大小,机身内存总容量及可用大小的系统方法
- 在Android程序中使用MQTT
- 在Linux中让echo命令显示带颜色的字
- Mysql你必须知道的命令和函数
- 关于数据库主键和外键(终于弄懂啦)
- 2017-04-24 DBA日记,触发BUG导致shared pool中的PRTMV memry剧增
- 获取手机电池状态,手机内存总容量大小,当前可用容量,手机IP地址,手机当前所连接Wi-Fi的名称
- ReactNative基于CodePush实现热更新集成详解
- 生产环境实战spark (8)分布式集群 Hadoop集群WEBUI打不开问题解决,关闭防火墙firewall
- SSZipArchive导入出错
- eclipse集成weblogic+weblogic安装
- 关于 < meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" />
- 序列化与反序列化
- 支持向量机SVM算法应用【Python实现】
- Activemq点对点模式