小编Uda*_*day的帖子

在Android M和旧版本中使用KeyStore加密和解密用户名?

我正在尝试使用KeyStore在应用程序中加密和解密用户名,

使用KeyPairGeneratorSpec在旧版本中创建密钥,如18到22,

KeyPairGeneratorSpec如被depricated android的M的23版本,但版本的Android M支持KeyGenParameterSpec.

此KeyGenParameterSpec是否支持向后兼容性或如何执行此操作?

我尝试了这样的事情,有没有更好的解决方案.现在工作正常!

在加密和解密的Ciper.getInstance时我需要这样做.是否有任何单个参数"RSA/ECB/OAEPWithSHA-256AndMGF1Padding"或"RSA/ECB/PKCS1Padding"我可以通过这两个版本

if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M){
            c =  Cipher.getInstance("RSA/ECB/OAEPWithSHA-256AndMGF1Padding");
        }else{
            c =  Cipher.getInstance("RSA/ECB/PKCS1Padding");
        }
Run Code Online (Sandbox Code Playgroud)

下面的代码现在工作正常,让我知道如何改善这一点.

密钥生成器:

genkey(){
KeyPairGenerator generator = KeyPairGenerator .getInstance(KeyProperties.KEY_ALGORITHM_RSA, "AndroidKeyStore");
            if(android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M){
                TCLog.e(TAG,"Current version is 23(MashMello)");
                //Api level 23

                KeyGenParameterSpec spec = new  KeyGenParameterSpec.Builder(
                             keyName,
                            KeyProperties.PURPOSE_DECRYPT | KeyProperties.PURPOSE_ENCRYPT )
                            .setDigests(KeyProperties.DIGEST_SHA256, KeyProperties.DIGEST_SHA512)
                            .setEncryptionPaddings(KeyProperties.ENCRYPTION_PADDING_RSA_OAEP)
                            .build();
                generator.initialize(spec);
            }else{
                TCLog.e(TAG,"Current version is < 23(MashMello)");
                //api level 17+ 4.4.3
                KeyPairGeneratorSpec spec = new KeyPairGeneratorSpec.Builder(getActivity())
                        .setAlias(keyName)
                        .setSubject(new X500Principal("CN=Sample Name, O=Android Authority"))
                        .setSerialNumber(BigInteger.ONE)
                        .setStartDate(start.getTime())
                        .setEndDate(end.getTime())
                        .build(); …
Run Code Online (Sandbox Code Playgroud)

encryption android cryptography rsa android-keystore

25
推荐指数
1
解决办法
5642
查看次数

如何使用swift语言创建json数据并将其发送到服务器

我是IOS开发的新手,我开始使用快速的语言.

我试图从两个文本字段中获取值并将这两个文本字段转换为json并将该json发送到服务器receive.php.

让concider拖出文本字段 - name - pass

如何创建一个Json并在单击按钮时将其发送到服务器?

json ios swift xcode6 swift-playground

9
推荐指数
1
解决办法
3万
查看次数

右上角的导航抽屉图标显示汉堡图标的后退箭头图标

我用导航抽屉活动创建了一个新的Android应用程序.当我执行应用程序时,右上角的图标显示后箭头,但它必须是3行的图标.

图标R.drawable.ic_drawer就是这个

在此输入图像描述

在NavigationDrawerFragment类中.

// ActionBarDrawerToggle ties together the the proper interactions
    // between the navigation drawer and the action bar app icon.
    mDrawerToggle = new ActionBarDrawerToggle(
            getActivity(),                    /* host Activity */
            mDrawerLayout,                    /* DrawerLayout object */
            R.drawable.ic_drawer,             /* nav drawer image to replace 'Up' caret */
            R.string.navigation_drawer_open,  /* "open drawer" description for accessibility */
            R.string.navigation_drawer_close  /* "close drawer" description for accessibility */
    ) 
Run Code Online (Sandbox Code Playgroud)

当我执行应用程序时,我正在右侧显示箭头图标.

在此输入图像描述

选择后,Icon也是一样的.

在此输入图像描述

我现在该如何改变它?

android navigation-drawer

7
推荐指数
1
解决办法
3255
查看次数

如何在TextView中的文本末尾显示光标?

我想在TextView的文本末尾显示闪烁的光标.

android:cursorVisible="true"在TextView中试过 但是没有去.

即使我尝试过text.setCursorVisible(true);也行不通.

<TextView
    android:id="@+id/text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:cursorVisible="true"
    android:textCursorDrawable="@null"  />
Run Code Online (Sandbox Code Playgroud)

有人知道任何解决方案吗?

android

6
推荐指数
1
解决办法
1万
查看次数

如何在build.gradle中获取Bamboo内部版本号

我试图访问build.gradle中的bamboo内部版本号,但无法在那里访问它.以下是我迄今为止尝试过的选项build.gradle:

System.getenv ()["bamboo.buildNumber"]
System.getenv ()["bamboo_buildNumber"]

project.hasProperty("bamboo_buildNumber")
project.hasProperty("bamboo_buildNumber")
Run Code Online (Sandbox Code Playgroud)

我甚至尝试为我的构建计划创建一个变量,变量名称为BUILD_NUMBER,变量值为,${bamboo.buildNumber}并使用以下方法访问它,但是没有访问这些值.

System.getenv ()["BUILD_NUMBER"]
project.hasProperty("BUILD_NUMBER")
Run Code Online (Sandbox Code Playgroud)

android bamboo build.gradle

5
推荐指数
2
解决办法
1691
查看次数

任务完成后如何从意图服务获得通知?

好吧,我正在关注此链接

甚至添加了广播接收器,如上面的链接所示。但我没有通知任务的完成,我想在这个 Intent 服务完成后运行一些活动。任何人都可以帮助我。

我收到如下错误:

Permission Denial: broadcasting Intent 
{ act=com.saaranga.services.GetTaxonomy.DATA_RETRIEVED 
cat=[android.intent.category.DEFAULT] (has extras) } 
from com.saaranga.lib (pid=1089, uid=10034) 
equires com.saaranga.services.Permissions.SEND_SIMPLE_NOTIFICATIONS 
due to receiver com.saaranga.lib/com.saaranga.services.ServiceReciver
Run Code Online (Sandbox Code Playgroud)

在 intentService 我已经初始化:

public static final String ACTION_NOTIFY="com.saaranga.services.GetTaxonomy.DATA_RETRIEVED";

private void sendSimpleBroadcast(int count)
{
    Intent broadcastIntent = new Intent();

    broadcastIntent.setAction(GetTaxonomy.ACTION_NOTIFY);
    broadcastIntent.addCategory(Intent.CATEGORY_DEFAULT);
    broadcastIntent.putExtra(PARAM_OUT_COUNT, count);
//    broadcastIntent.setClass(getApplicationContext(), getClass());
    sendBroadcast(broadcastIntent, Permissions.SEND_SIMPLE_NOTIFICATIONS);
}
Run Code Online (Sandbox Code Playgroud)

并创建了一个权限类:

package com.saaranga.services;

public class Permissions {
public static final String SEND_SIMPLE_NOTIFICATIONS =  "com.saaranga.services.Permissions.SEND_SIMPLE_NOTIFICATIONS";}
Run Code Online (Sandbox Code Playgroud)

在清单文件中:

 <permission 
    android:name="com.saaranga.services.Permissions.SEND_SIMPLE_NOTIFICATIONS"
    android:label="permission to send simple notifications"
    android:permissionGroup="android.permission-group.PERSONAL_INFO"
    android:protectionLevel="normal" />

<service …
Run Code Online (Sandbox Code Playgroud)

android android-intent

1
推荐指数
1
解决办法
1494
查看次数

我有两个ArrayList A和B,我想知道数组A中的元素是否存在于数组B元素中

我有两个ArrayLists A和B,我只想查找ArrayList A中的元素是否存在于ArrayList B元素中.

我刚试过这个.

if(ArrayListA.contains(ArrayListB))

让我们考虑:

如果ArrayListA = {1,2};,如果ArrayListB = {2};它必须返回.

如果ArrayListA = {1,2};,如果ArrayListB = {2,1};它必须返回.

但徒劳无功,任何人都可以帮助我吗?

java arrays arraylist

1
推荐指数
1
解决办法
104
查看次数

在单选按钮组中选择单选按钮必须启用textview并选择单选按钮,因为no必须在android中禁用textview

在单选组中选择单选按钮为YES必须启用textview并选择单选按钮,因为NO必须禁用android中的textview.

谁能解释我怎么能这样做?

布局代码:

<RadioGroup
    android:id="@+id/rg5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/rg5r1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="NO" />

    <RadioButton
        android:id="@+id/rg5r2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="YES" />

</RadioGroup>

<TextView
    android:id="@+id/q6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:text="If &apos;Yes&apos; please list allergies"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="@color/wight" />
Run Code Online (Sandbox Code Playgroud)

android radio-group

1
推荐指数
1
解决办法
2609
查看次数

如何使ActionBar兼容2.3.3版本?

以及我的程序在4.0及以上版本上完美运行,

我正在使用ActionBarShrelock库来执行此操作.

当我将目标改为2.3.3时 target=android-10

它在"R.id.home"给出了错误.

switch (item.getItemId()) 
    {
        case android.R.id.home:
        Log.d("home","home selected");
        slidemenu.show();
        return true;
    }
Run Code Online (Sandbox Code Playgroud)

即使我已经改变了风格:

<style name="AppTheme" parent="Theme.Sherlock.Light.DarkActionBar"/>
Run Code Online (Sandbox Code Playgroud)

但如果我改变了目标用法: <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />

它适用于2.3以及4.0及以上版本,但问题是视觉效果不同.

4.0的输出如下所示.

在此输入图像描述

2.3.3的输出如下所示. 在此输入图像描述

知道如何解决这个问题.

android

0
推荐指数
1
解决办法
5169
查看次数

相当于 Dart 中的 Java System.arraycopy?

如何将以下 java 代码转换为等效的 dart。

private static final byte[] mIdBytes = new byte[]{(byte) 0x01, (byte) 0x02, (byte) 0x03, (byte) 0x7E};

byte[] data;

System.arraycopy(mIdBytes, 2, data, 0, 4);

是否有任何 Dart 方法可以执行类似的操作?

我正在研究这个:https : //pub.dev/documentation/ckb_dart_sdk/latest/ckb-utils_number/arrayCopy.html

dart

0
推荐指数
2
解决办法
349
查看次数