Android 怎么获取当前的时间戳

Android 怎么获取当前的时间戳,第1张

Android获取当前时间代码

//需要引用的

import javasqlTimestamp;

import javatextSimpleDateFormat;

//详细代码

javautilDate currentdate = new javautilDate();//当前时间

//long i = (currentdategetTime()/1000-timestamp)/(60);

//Systemoutprintln(currentdategetTime());

//Systemoutprintln(i);

Timestamp now = new Timestamp(SystemcurrentTimeMillis());//获取系统当前时间

Systemoutprintln("now-->"+now);//返回结果精确到毫秒。

时间戳转日期

int timestamp = 1310457552; //将这个时间戳转为日期

return getTime(timestamp);

定义getTime, getDate, IntToLong

public static String getTime(int timestamp){

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

String time= null;

try {

String str = sdfformat(new Timestamp(IntToLong(timestamp)));

time = strsubstring(11, 16);

String month = strsubstring(5, 7);

String day = strsubstring(8,10 );

time =getDate(month, day)+ time;

} catch (Exception e) {

// TODO Auto-generated catch block

eprintStackTrace();

}

return time;

}

public static String getDate(String month,String day){

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//24小时制

javautilDate d = new javautilDate(); ;

String str = sdfformat(d);

String nowmonth = strsubstring(5, 7);

String nowday = strsubstring(8,10 );

String result = null;

int temp = IntegerparseInt(nowday)-IntegerparseInt(day);

switch (temp) {

case 0:

result="今天";

break;

case 1:

result = "昨天";

break;

case 2:

result = "前天";

break;

default:

StringBuilder sb = new StringBuilder();

sbappend(IntegerparseInt(month)+"月");

sbappend(IntegerparseInt(day)+"日");

result = sbtoString();

break;

}

return result;

}

//java Timestamp构造函数需传入Long型

public static long IntToLong(int i){

long result = (long)i;

result=1000;

return result;

}

方法/步骤

1

1 win7,开始菜单,搜索cmd

2

2 打开cmd

3

3 进入android

4

4 使用命令keytool -list -v -keystore debugkeystore

5

5 需要安装keytool,办法是安装jdk,百度搜索jdk并下载安装;具体平台按实际情况选择

6 安装完毕,进入到jdk安装bin目录,并复制地址

7 回到cmd命令窗口,输入cd + 空格,并在标题栏右侧点击粘贴

8 回车,进入到这个目录

9 再次输入keytool -list -v -keystore debugkeystore命令并回车,出现错误

10 先执行以下命令keytool -genkey -v -keystore debugkeystore -alias androiddebugkey -keyalg RSA -validity 10000

11 按提示输入密码(自己定),密保答案等;到后来需要重新再输入密码,生成完成

12 到keytool目录下,看到debugkeystore已经生成成功

13 将这个文件复制到android文件夹下

14 现在再次键入生成android签名的命令:keytool -list -v -keystore debugkeystore,按提示输入密码,即可成功生成签名

步骤阅读

15 在标题栏右键选择标记复制其中的SHA1的值,即为android的签名

android中有时候需要获取应用的签名信息,签名信息一般有:公钥,算法名,MD5值,序列号。要想获取这些信息首先该APK应用要有系统权限。

1 在配置文件里添加系统权限:android:sharedUserId="androiduidsystem"

2 获取签名信息的字符信息:

String signature_key = "";

try{

PackageInfo packageInfo = contextgetPackageManager()getPackageInfo(pkgName,

PackageManagerGET_SIGNATURES);

Signature[] signatures =

packageInfosignatures;

SignatureKeyparseSignature(signatures[0]toByteArray());

} catch (NameNotFoundException e) {

eprintStackTrace();

} catch (NullPointerException e) {

eprintStackTrace();

}

(1)其中packageInfo 得到的是指定包名的签名信息的字符串。另提及多说一句:在程序中我们一般使用

List list =

mPackageManagergetInstalledPackages(0);来得到所有的安装包的信息,这其中包括应用名,包名,大小

(2)

其中[]signatures里是存放的签名的字符串数组。我们一般取用第一个signatures[0]来做为该应用的签名信息。这里有一个疑惑就是为什么得到的是一个字符串的数组列表,而不是一个字符串,也有的开发者采用:

StringBuilder builder = new StringBuilder();

for(Signature sign: signatures

){

builderappend(signtoCharsString());

builderappend("/n");

}来得到所有的签名信息。在这里我验证过,signatures

的长度为1,所以指定apk的签名信息就为signatures[0]。

至于第二种方法有待发现。

3 获取签名的MD5值

public static final String getMD5String(byte[] paramArrayOfByte)

{

char[] asciiTable = { 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,

97, 98, 99, 100, 101, 102 }; // ascii表对应的数字和字符的编码

try

{

MessageDigest md5MessageDigest =

MessageDigestgetInstance("MD5");

md5MessageDigestupdate(paramArrayOfByte);//

byte[]

tempByte = md5MessageDigestdigest();

int i =

tempBytelength;

char[] tempChar = new char[i

2];

int j = 0;

int k =

0;

while (true) { //

将二进制数组转换成字符串

if (j >= i)

{

return new

String(tempChar);

}

int m

= tempByte[j];

int n = k +

1;

tempChar[k] = asciiTable[(0xF & m >>>

4)];

k = n +

1;

tempChar[n] = asciiTable[(m &

0xF)];

j++;

}

}

catch (Exception e)

{

eprintStackTrace();

}

return

null;

}

(1) 其中参数就是上一步得到的签名的byte数组。

4 获取公钥,签名算法,签名序列号

public static void parseSignature(byte[] signature)

{

try

{

CertificateFactory

certFactory =

CertificateFactorygetInstance("X509");

X509Certificate cert = (X509Certificate) certFactorygenerateCertificate(new

ByteArrayInputStream(signature));

String pubKey =

certgetPublicKey()toString(); //公钥

String signNumber =

certgetSerialNumber()toString();

Systemoutprintln("signName:" +

certgetSigAlgName());//算法名

Systemoutprintln("pubKey:" +

pubKey);

Systemoutprintln("signNumber:" +

signNumber);//证书序列编号

Systemoutprintln("subjectDN:"+certgetSubjectDN()toString());

} catch (CertificateException e)

{

eprintStackTrace();

}

}

5 电脑查看APK签名信息

查看三方应用或是系统应用签名

用winrar打开待查看的apk,将其中META-INF文件夹解压出来,得到其中的CERTRSA文件

1keytool

-printcert -file META-INF/CERTRSA

命令是:keytool -printcert -file

<签名文件RSA的路径>

2jarsigner -verify -verbose -certs Superuserapk

此条未验证成功

当然找不到了!因为现在你添加的是settingxml,所以这个ImageView会默认在settingxml里找,settingxml里没有所以找不到;解决办法是你必须通过settingxml把preference_imagexml加载(inflate)进来,如:

LayoutInflater inflater = getLayoutInflater();

View imageLayout = inflaterinflate(Rlayoutpreference_imagexml,null);然后

ImageView imageView = (ImageView) imageLayoutfindViewById(RidRightImage);

这只是大致步骤,具体看你的程序

android 获取sim卡运营商信息

TelephonyManager tm = (TelephonyManager)ContextgetSystemService(ContextTELEPHONY_SERVICE); TelephonyManager 的使用 TelephonyManager 提供设备上获取通讯服务信息的入口,应用程序使用这个类的方法来获取电话的服务商或者状态。程序也可以注册一个监听器来监听电话状态的改变。 不需要直接实例化这个类,使用ContextgetSystemService(ContextTELEPHONY_SERVICE)来获取这个类的实例。

注意:一些电话信息需要相应的权限。 方法无效

getSimOperatorName() Returns the Service Provider Name (SPN) // 获取服务提供商名字,比如电信,联通,移动 用下面的方法 第一种方法: 获取手机的IMSI码,并判断是中国移动/中国联通/中国电信

TelephonyManager telManager = (TelephonyManager) getSystemService(ContextTELEPHONY_SERVICE);

/ 获取SIM卡的IMSI码 SIM卡唯一标识:IMSI 国际移动用户识别码(IMSI:International Mobile Subscriber Identification Number)是区别移动用户的标志, 储存在SIM卡中,可用于区别移动用户的有效信息。

IMSI由MCC、MNC、MSIN组成,其中MCC为移动国家号码,由3位数字组成, 唯一地识别移动客户所属的国家,我国为460;MNC为网络id,由2位数字组成, 用于识别移动客户所归属的移动网络,中国移动为00,中国联通为01,中国电信为03;

MSIN为移动客户识别码,采用等长11位数字构成。

唯一地识别国内GSM移动通信网中移动客户。所以要区分是移动还是联通,只需取得SIM卡中的MNC字段即可 /

String imsi = telManagergetSubscriberId();

if(imsi!=null){ if(imsistartsWith(“46000″) || imsistartsWith(“46002″))

{//因为移动网络编号46000下的IMSI已经用完,所以虚拟了一个46002编号,134/159号段使用了此编号 //中国移动

}else if(imsistartsWith(“46001″)){

//中国联通

}else if(imsistartsWith(“46003″)){

//中国电信

} }

第二种方法 TelephonyManager telManager = (TelephonyManager) getSystemService(ContextTELEPHONY_SERVICE); String operator = telManagergetSimOperator();

if(operator!=null){ if(operatorequals(“46000″) || operatorequals(“46002″)|| operatorequals(“46007″)){

//中国移动

}else if(operatorequals(“46001″)){

//中国联通

}else if(operatorequals(“46003″)){

//中国电信

} }

在文件AndroidManifestxml中添加权限 其他方法具体使用方法请查看API 文档TelephonyManager中方法说明。

在文件 AndroidManifestxml 中添加权限 <uses-permission android:name="androidpermissionREAD_PHONE_STATE"/>

TelephonyManager tel = (TelephonyManager) context getSystemService(ContextTELEPHONY_SERVICE);

String simOperator = telgetSimOperator();

IMSI共有15位,其结构如下: MCC+MNC+MIN MCC:Mobile Country Code,移动国家码,共3位,中国为460; MNC:Mobile Network Code,移动网络码,共2位,电信03,移动02,联通GSM 01,一个典型的IMSI号码为460030912121001; MIN共有10位,其结构如下: 09+M0M1M2M3+ABCD 其中的M0M1M2M3和MDN号码中的H0H1H2H3可存在对应关系,ABCD四位为自由分配。 可以看出IMSI在MIN号码前加了MCC,可以区别出每个用户的来自的国家,因此可以实现国际漫游。在同一个国家内,如果有多个CDMA运营商,可以通过MNC来进行区别

功能 说明

getCellLocation() 返回的单元格位置的装置 ACCESS_COARSE_LOCATION或ACCESS_FINE_LOCATION

getDeviceId() 返回的IMEI / MEID的设备。 如果该设备是GSM设备 然后IMEI号将被退回,如果该设备是一个CDMA设备然后MEID 将被退回 READ_PHONE_STATE

getLine1Number() 返回设备的电话号码(MSISDN号码) READ_PHONE_STATE

getNetworkOperatorName() 返回注册的网络运营商的名字

getNetworkOperator() 返回的MCC +跨国公司的注册网络运营商

getNetworkCountryIso() 返回注册的网络运营商的国家代码

getSimCountryIso() 返回SIM卡运营商的国家代码 READ_PHONE_STATE

getSimOperator() 返回SIM卡运营商的单个核细胞数+冶 READ_PHONE_STATE

getSimOperatorName() 返回SIM卡运营商的名字 READ_PHONE_STATE

getSimSerialNumber() 返回SIM卡的序列号 READ_PHONE_STATE

getNetworkType() 返回网络设备可用的类型。 这将是 下列其中一个值:

TelephonyManagerNETWORK_TYPE_UNKNOWN TelephonyManagerNETWORK_TYPE_GPRS TelephonyManagerNETWORK_TYPE_EDGE TelephonyManagerNETWORK_TYPE_UMTS READ_PHONE_STATE getPhoneType() 返回设备的类型。 这将是以下值之一: TelephonyManagerPHONE_TYPE_NONE TelephonyManagerPHONE_TYPE_GSM TelephonyManagerPHONE_TYPE_CDMA READ_PHONE_STATE getSubscriberId() 返回用户识别码(的IMSI)的设备 READ_PHONE_STATE

getNeighboringCellInfo() 返回NeighboringCellInfo类代表名单 相邻小区的信息,如果可用,否则将 返回null ACCESS_COARSE_UPDATES

以上就是关于Android 怎么获取当前的时间戳全部的内容,包括:Android 怎么获取当前的时间戳、如何获取android app的签名、如何获取android 签名信息等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9746915.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存