小编tim*_*tim的帖子

使用Bouncy Castle AES/CBC/PKCS7加密字符串

我一直在寻找一些关于如何使用Bouncy Castle Framework加密标题中的加密的简单字符串的示例代码.

此代码将在Windows Universal项目上运行.我之前尝试使用内置API加密的尝试无法在服务器上解密.

我试过这个:这给了我一个字符串:

4pQUfomwVVsl68oQqWoWYNRmRM + CP + vNFXBNdkN6dZPQ34VZ35vsKn9Q7QGTDVOj + w5mqVYHnGuAOFOgdgl8kA ==

s = String.Format("{0}_{1}", s, DateTime.Now.ToString("ddMMyyyyHmmss"));
SymmetricKeyAlgorithmProvider algorithm = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7);
IBuffer keymaterial = CryptographicBuffer.ConvertStringToBinary("[Key]", BinaryStringEncoding.Utf8);
CryptographicKey KEY = algorithm.CreateSymmetricKey(keymaterial);
IBuffer IV = CryptographicBuffer.ConvertStringToBinary("[IV]", BinaryStringEncoding.Utf8);
IBuffer data = CryptographicBuffer.ConvertStringToBinary(s, BinaryStringEncoding.Utf8);
IBuffer output = CryptographicEngine.Encrypt(KEY, data, IV);
return CryptographicBuffer.EncodeToBase64String(output);
Run Code Online (Sandbox Code Playgroud)

服务器使用加密/解密

public static string Encrypt(string text, byte[] key, byte[] iv, int keysize = 128, int blocksize = 128, CipherMode cipher = CipherMode.CBC, PaddingMode padding = PaddingMode.PKCS7)
{
    AesCryptoServiceProvider aes = …
Run Code Online (Sandbox Code Playgroud)

c# encryption bouncycastle windows-8.1 windows-phone-8.1

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

Robolectric:IllegalStateException:您需要在此活动中使用Theme.AppCompat主题(或后代)

我是Android上Robolectric和仪器测试的新手.我按照Robolectric指南进行了第一次测试.但是我得到了:

java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

我搜索了错误,但没有解决方案有帮助.我包括可能导致此错误的所有内容.

摇篮:

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt' //needed for source code generation
apply plugin: 'jacoco'
apply plugin: 'de.mobilej.unmock'

android {
    compileSdkVersion 22
    buildToolsVersion "22.0.1"

    testOptions {
        unitTests.returnDefaultValues = true
    }

    defaultConfig {
        applicationId "#######"
        minSdkVersion 15
        targetSdkVersion 22
        testHandleProfiling true
        testFunctionalTest true
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        debug{
            testCoverageEnabled false
        }
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    lintOptions …
Run Code Online (Sandbox Code Playgroud)

java android functional-testing illegalstateexception robolectric

16
推荐指数
3
解决办法
6252
查看次数

HttpClient上的ObjectDisposedException

我有一个带有多个API调用的Windows Universal Project.一种方法拒绝工作eventhought我的其他调用完全像这样工作.我尝试了using关键字,认为它可以解决问题.

功能:

public async Task<User> GetNewUser(string user_guid, OAuthTokens OAuth)
{
    String userguidJSON = VALIDJSON_BELIEVE_ME;
    using (var httpClient = new HttpClient())
    {
        httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
        httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Authorization", Encrypt(OAuth.Accesstoken));

        using (HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Post, BASE_URL + URL_USERS + "/data"))
        {
            req.Content = new StringContent(userguidJSON, Encoding.UTF8, "application/json");
            await httpClient.SendAsync(req).ContinueWith(respTask =>
            {
                Debug.WriteLine(req.Content.ReadAsStringAsync()); //Error is thrown ono this line
            });
            return null;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑

public async Task<User> GetNewUser(string user_guid, OAuthTokens OAuth)
{
    String userguidJSON = VALIDJSON_BELIEVE_ME; …
Run Code Online (Sandbox Code Playgroud)

c# mvvm async-await windows-phone-8.1 win-universal-app

15
推荐指数
3
解决办法
2万
查看次数

RGB到飞利浦Hue(HSB)

我正在为处理学校的作业制作一个音乐播放器.飞利浦Hue灯将产生一些相应的视觉效果.我想让每首歌的视觉效果都是独一无二的.因此,我获取了播放曲目的封面艺术(使用LastFM API)以获得最常用的颜色,并将其用作创建其他颜色的基础.飞利浦Hue有一种不同的显示颜色的方式即(HSB).所以我通过转换它

Color.RGBtoHSB();

对于前者 它给出了R = 127,G = 190,B = 208,其值H = 0.5370371,S = 0.38942307,B = 0.8156863.现在我猜它们是在基数1上计算的,所以我将亮度和饱和度乘以255.而Hue乘以65535.(见http://developers.meethue.com/1_lightsapi.html)

在飞利浦Hue中设置这些计算值时,无论播放什么歌曲,颜色总是红色或白色.

RGB到HSB之间的转换出了什么问题?

在流行的请求我的代码:

作为测试:

Color c = Colorconverter.getMostCommonColour("urltoimage");
float[] f = Colorconverter.getRGBtoHSB(c);
ArrayList<Lamp> myLamps = PhilipsHue.getInstance().getMyLamps();
State state = new State();
state.setBri((int) Math.ceil(f[2]*255));
state.setSat((int) Math.ceil(f[1]*255));
state.setHue((int) Math.ceil(f[0]*65535));
state.setOn(true);
PhilipsHue.setState(myLamps.get(1), state);
Run Code Online (Sandbox Code Playgroud)

功能如上所示

    public static Color getMostCommonColour(String coverArtURL) {
            Color coulourHex = null;
            try {
                BufferedImage image = ImageIO.read(new URL(coverArtURL));
                int height = image.getHeight();
                int width = image.getWidth();

                Map m = new HashMap(); …
Run Code Online (Sandbox Code Playgroud)

java processing colors philips-hue

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

多个共享元素

我在足球应用程序中有以下情况.
我们希望在所有这些活动之间实现共享元素.

共享元素情况

在我的第一个Activity匹配器的视图中,我设置了一个android:transitionName对应于第二个上的相同transitionName Activity.

<!-- item_viewholder (first activity) -->
<CustomViewContainingImageViewAndTextView
     android:id="@+id/item_match_hometeam"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:transitionName="@string/transition_morph_match_header_homeTeam" />

<!-- header (second activity) -->
<CustomViewContainingImageViewAndTextView
     android:id="@+id/item_match_hometeam_header"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:transitionName="@string/transition_morph_match_header_homeTeam" />
Run Code Online (Sandbox Code Playgroud)

我开始第二Activity

final String awayTeamTransition = activityContext.getString(R.string.transition_morph_match_header_awayTeam);
final String homeTeamTransition = activityContext.getString(R.string.transition_morph_match_header_homeTeam);
final ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(
                   activityContext,
                   Pair.create(homeTeam, homeTeamTransition),
                   Pair.create(awayTeam, awayTeamTransition));
activityContext.startActivity(intent, options.toBundle());
Run Code Online (Sandbox Code Playgroud)

现在这种过渡工作正常,但如果我想要更深入的细节怎么办呢.
显示有关所选团队的统计信息,我也希望在那里进行共享转换?

当我点击新的transitionName时,我尝试以编程方式设置.CustomViewContainingImageViewAndTextViewtransitionName

final String teamViewTransition = activityContext.getString(R.string.transition_morph_teamview_to_detail);
//teamView is the view that was clicked.
ViewCompat.setTransitionName(teamView, teamViewTransition);

final ActivityOptions options …
Run Code Online (Sandbox Code Playgroud)

android shared-element-transition

14
推荐指数
2
解决办法
6545
查看次数

无法设置Content-Type标头

我在HttpClient上设置Content-Type时遇到问题.我按照这个问题:如何为HttpClient请求设置Content-Type标头? 但仍然没有运气.

String rcString = JsonConvert.SerializeObject(new RoadsmartChecks() { userguid = user_guid, coords = coordinates, radius = (radius * 100) + "" }, ROADSMART_JSON_FORMAT, JSONNET_SETTINGS);
HttpClient c = new HttpClient();
c.BaseAddress = new Uri(BASE_URL);
c.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json"); //Keeps returning false
c.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", hash_aes);
c.DefaultRequestHeaders.TryAddWithoutValidation("Roadsmart-app", Constant.APP_ID);
c.DefaultRequestHeaders.TryAddWithoutValidation("Roadsmart-user", user_guid);
c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpRequestMessage req = new HttpRequestMessage(HttpMethod.Post, BASE_URL + URL_CHECKS + "/fetch");
req.Content = new StringContent(rcString);
await c.SendAsync(req).ContinueWith(respTask =>
{
    Debug.WriteLine("Response: {0}", respTask.Result);
});
Run Code Online (Sandbox Code Playgroud)

调试器 我也试过使用Flurl库,但在尝试添加'Content-Type'时它崩溃了.

misused header name content-type
Run Code Online (Sandbox Code Playgroud)

那么我该如何强制它以便真正添加呢?提前致谢.

c# httpclient windows-phone-8.1 flurl

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

Bootstrap自定义模态效果

我正在用Bootstrap创建一个网站.我偶然发现了我想要整合到我的网站中的这种极好的模态效果.但是,我没有找到任何有关如何执行此操作的信息.

请参阅:http: //tympanus.net/Development/ModalWindowEffects/

特别是效果18:'Make Way'效果的CSS:

/* Slide from right with perspective on container */
.md-show.md-effect-18 ~ .container {
    height: 100%;
    overflow: hidden;
}

.md-show.md-effect-18 ~ .md-overlay {
    background: rgba(143,27,15,0.8);
    -webkit-transition: all 0.5s;
    -moz-transition: all 0.5s;
    -o-transition: all 0.5s;
    transition: all 0.5s;
}

.md-show.md-effect-18 ~ .container,
.md-show.md-effect-18 ~ .md-overlay {
    -webkit-transform-style: preserve-3d;
    -webkit-transform-origin: 0% 50%;
    -webkit-animation: rotateRightSideFirst 0.5s forwards ease-in;
    -moz-transform-style: preserve-3d;
    -moz-transform-origin: 0% 50%;
    -moz-animation: rotateRightSideFirst 0.5s forwards ease-in;
    transform-style: preserve-3d;
    -ms-transform-origin: 0% 50%;
    -o-transform-origin: 0% 50%;
    transform-origin: …
Run Code Online (Sandbox Code Playgroud)

html css jquery twitter-bootstrap

8
推荐指数
2
解决办法
3万
查看次数

onMetadataChanged从未调用过MediaControllerCompat.Callback

我正在为一家广播电台开发一个简单的音频播放器应用程序.
我已成功制作MediaBrowser并注册了一个回调来监听playBack- 或metadata更改.

var mediaBrowser : MediaBrowserCompat by Delegates.notNull()
mediaBrowser = MediaBrowserCompat(
        activity,
        ComponentName(activity, MediaPlaybackService::class.java),
        object : MediaBrowserCompat.ConnectionCallback() {
            override fun onConnected() {
                val mediaController = MediaControllerCompat(activity, mediaBrowser.sessionToken)
                MediaControllerCompat.setMediaController(activity, mediaController)
                mediaController.registerCallback(ControllerCallback)
                mediaControllerFunc()
            }
        },
        null
)

object ControllerCallback : MediaControllerCompat.Callback() {
    override fun onMetadataChanged(metadata: MediaMetadataCompat) {
        //TODO: Never called
    }

    override fun onPlaybackStateChanged(state: PlaybackStateCompat) {
        //Called
    }
}
Run Code Online (Sandbox Code Playgroud)

playback当我打电话收到的变化

mediaSession.setPlaybackState(
    PlaybackStateCompat.Builder()
            .setActions(PlaybackStateCompat.ACTION_PLAY_PAUSE)
            .setState(STATE_PLAYING, DEFAULT_PLAYBACK_POSITION, DEFAULT_PLAYBACK_SPEED)
            .build()
)
Run Code Online (Sandbox Code Playgroud)

但元数据更改不是.
即使我打电话

mediaSession.setMetadata(
    MediaMetadataCompat.Builder()
        .putLong(METADATA_KEY_DURATION, …
Run Code Online (Sandbox Code Playgroud)

audio android android-mediaplayer android-mediasession

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

WebView CustomScrollView +浮动AppBar

我正在尝试创建一个具有WebView的屏幕(来自webview_flutter:^ 0.3.5 + 3),AppBar并且我想在用户滚动时在屏幕外滚动。

我偶然发现了该指南,并尝试实现类似但没有骰子的方法。
是否可以WebViewCustomScrollViewwith 中使用,Slivers还是尚不支持?

我可以滚动应用栏来工作,如果我在创建常规小工具SliverChildListDelegate(我试过RowTextContainer等),但没有运气了WebView

@override
Widget build(BuildContext context) {
  return Scaffold(
      body: CustomScrollView(
        slivers: <Widget>[
          SliverAppBar(
            title: const Text("Heading"),
            floating: true,
          ),
          SliverList(
            delegate: SliverChildListDelegate([
              Container(
                child: WebView(
                  initialUrl: url,
                  javascriptMode: JavascriptMode.unrestricted,
                ),
              )
            ]
            ),
          )
        ],
      )
  );
}
Run Code Online (Sandbox Code Playgroud)

欢迎任何指针/建议/ RTFM。

编辑赏金

jordan-davies提供的解决方案有效,但是非常不稳定。每当将SliverAppBar滚动离开时,都会WebView尝试自行调整大小以填充剩余的视口。这使得波动非常缓慢。

@override
Widget build(BuildContext context) { …
Run Code Online (Sandbox Code Playgroud)

webview flutter flutter-sliver flutter-appbar

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

Javascript本地语言文本转语音

我正在为学校做一个项目,我们将教孩子们第一次计算.不幸的是,这些孩子无法阅读,所以他们会用母语向他们讲述任务,在这种情况下是荷兰语.

我一直在环顾四周,大多数文本到语音的javascript库都为英语提供了很好的支持,但对于任何其他语言都没有.此外,HTML5 speechSynthesis不支持Dutch:

Chrome 35目前支持语音合成语音

在进一步的研究中,我遇到了一篇文章,您可以使用Google Translate Voice将任何文本生成语音.

您可以将其作为基本网址:http: //translate.google.com/translate_tts

在我的案例荷兰语中附上您想要的语言

http://translate.google.com/translate_tts?tl=nl

并附上你的文字:

"这是一个测试"翻译成荷兰语

您希望这可以使用更长的文本,但事实并非如此.

文本到语音不起作用

还有其他解决方案吗?谷歌语音很好地说荷兰语,所以我希望链接以某种方式工作.

javascript jquery html5 text-to-speech google-text-to-speech

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