小编dea*_*ish的帖子

如何识别特定的apk版本,即使用户在Google Play中更新apk

我需要识别具有特定apk构建的用户.这个版本具有一些与普通apk相比的功能(就像一些函数在开始时是PRO).

build for GooglePlay------>
                           ----> next version of apk
build for some Customers-->
Run Code Online (Sandbox Code Playgroud)

我想将一些数据保存到数据库中,所以即使我更新了apk I,也会有用户数据,无论用户将拥有什么版本.

当用户未运行应用程序但立即更新到下一版本时,会发生此问题.用户没有初始化sqlite,因此没有存储数据.

有没有办法保持数据并重用它,即使用户更新基地apk到更新版本?

android uniqueidentifier apk

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

在PagerAdapter上调用notifyDataSetChanged后,TabLayout会滚动到未知位置

我有一个示例项目TabLayoutPagerAdapter.奇怪的事情发生了TabLayout当我打电话pagerAdapter.notifyDataSetChanged();后,tabLayout.setupWithViewPager(viewPager);

TabLayout滚动到未知的x位置,因此当前选项卡不可见.但是,如果我向左滚动到期望选项卡,则此选项卡有指示符.

到底是怎么回事?谁能帮助我?我花了太多时间.

在此输入图像描述

代码下方.

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // Get the ViewPager and set it's PagerAdapter so that it can display items
        ViewPager viewPager = (ViewPager) findViewById(R.id.viewpager);
        final SampleFragmentPagerAdapter pagerAdapter = new SampleFragmentPagerAdapter(getSupportFragmentManager(), MainActivity.this);
        viewPager.setAdapter(pagerAdapter);

        // Give the TabLayout the ViewPager
        TabLayout tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
        tabLayout.setupWithViewPager(viewPager);

        findViewById(R.id.fab).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                pagerAdapter.notifyDataSetChanged();
            }
        });
    }

}
Run Code Online (Sandbox Code Playgroud)

我测试了nexus仿真器和nexus真实设备(api 21+) …

android android-tablayout

7
推荐指数
3
解决办法
1786
查看次数

Jenkins可以通过附件发送邮件通知吗?

Jenkins可以通过附件向收件人发送邮件通知吗?对我来说更重要的是(可选),它也可以从文件*.xls中读取并将其添加到电子邮件文本中.

或者我可以从我的系统变量添加到数据,这是通过jenkins插件(ext mail)发送的?

email plugins attachment jenkins

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

意外的状态行:URL openStream()方法的ICY 200 OK?

根据kitakt 4.4的变化,播放shoutcast流有些问题(那些返回"ICY"而不是"HTTP/1.x"响应).

因此,kitkat的解决方案是在我们打开流之前在JVM中重新注册"icy"协议前缀:

try {
        java.net.URL.setURLStreamHandlerFactory( new java.net.URLStreamHandlerFactory(){
            public java.net.URLStreamHandler createURLStreamHandler( String protocol ) {
                Log.d( LOG, "Asking for stream handler for protocol: '" + protocol + "'" );
                if ("icy".equals( protocol )) return new com.spoledge.aacdecoder.IcyURLStreamHandler();
                return null;
            }
        });
}
catch (Throwable t) {
        Log.w( LOG, "Cannot set the ICY URLStreamHandler - maybe already set ? - " + t );
}
Run Code Online (Sandbox Code Playgroud)

我有开放音频流的问题,使其注册.在我调用url.opnestream(stream)后,我得到了异常:

java.net.ProtocolException:意外的状态行:ICY 200 OK

我该怎么办呢?


这是注册音频的样本,到目前为止我做了什么..

try {
    URL url = null;
    url = new URL(u);
    inputStream …
Run Code Online (Sandbox Code Playgroud)

android inputstream aac android-audiorecord

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

如何制作像 Gmail 中的首字母缩写图标?

我想做的事:

在此输入图像描述

我拥有的:

在此输入图像描述

我想制作一个带有缩写的圆形图标。在我的场景中,首字母缩写可以包含一两个字母。就像你可以看到我的解决方案适用于两个字母,但不适用于一个字母。对于这两种情况我该如何解决?

XML 文件中有我的代码:

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:textSize="20dp"
    android:textAllCaps="true"
    android:textColor="@color/white"
    android:background="@drawable/shape_rounded_blue_button"
    android:layout_gravity="center_horizontal"
    android:gravity="center" 
    local:MvxBind="Text Initials"/>
Run Code Online (Sandbox Code Playgroud)

还有 shape_rounded_blue_button:

<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/blue"/>
<corners android:radius="30dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)

xml android view

6
推荐指数
2
解决办法
6683
查看次数

setforegroundwindow setactivewindow(pinvoke)有什么区别?

谁能解释一下 setactivewindow 和 setforegroundwindow 有什么区别(使用来自 www.pinvoke.net/# 的 pinvoke

第一次看时,你可以告诉我它设置了活动窗口,另一个到达窗口的前面,但是..嘿!第一个也带到桌面前面,不是吗?因此,如果我想将窗口保留在所有窗口前面并使其处于活动状态(因为我想对其进行操作,我还没有看到另一种方法)我应该使用哪个?

希望我写得合乎逻辑,对不起英语。

c# pinvoke

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

使用REGEX计算句子数并忽略首字母缩略词

我尝试使用正则表达式计算文本中的句子数.我想出了一个regex1找到所有要点:

([^.!?\s][^.!?]*)
Run Code Online (Sandbox Code Playgroud)

之后,我尝试通过以下regex2找到大部分首字母缩略词:

([A-Z]+[a-z]{0,3}\.).
Run Code Online (Sandbox Code Playgroud)

但是我有一些问题:

  1. 如果首字母缩略词在句子的末尾,则通过regex2公式找到(例如,自公元前20,000年以来).这不是故意的,我只想在一个句子中找到首字母缩略词.

  2. 如果我们假设,问题1已经解决,我想将两个正则表达式公式合并在一起,以便最终公式只输出实际的句子数.例如,我们可以考虑维基百科的以下文本:

美国国家航空航天局(NASA)是负责民用空间计划以及航空航天研究的美国政府机构.

德怀特·艾森豪威尔总统于1958年建立了美国国家航空航天局(NASA)[5],具有明显的民用(而不是军事)方向,鼓励和平应用于空间科学.1958年7月29日通过了"国家航空航天法",解散了美国宇航局的前身 - 国家航空咨询委员会(NACA).新机构于1958年10月1日开始运作.[6] [7]

从那时起,大多数美国太空探索工作都由美国宇航局领导,包括阿波罗登月任务,天空实验室空间站以及后来的航天飞机.目前,NASA正在支持国际空间站,并正在监督猎户座多用途机组车辆,太空发射系统和商用机组车辆的开发.该机构还负责启动服务计划(LSP),该计划负责监督无人驾驶NASA发射的发射操作和倒计时管理.

美国宇航局的科学重点是通过地球观测系统更好地了解地球,[8]通过科学任务理事会的太阳物理研究计划的努力推进太阳物理学,[9]利用先进的机器人航天器任务,如新视野,探索整个太阳系的物体, [10]通过大天文台和相关计划研究天体物理学主题,如大爆炸.[11] NASA与各种国家和国际组织共享数据,例如温室气体观测卫星.

上面的文字有9个句子.

Regex1:12匹配(D.,U.和S.被认为是"完全停止")

Regex2:3匹配(D.,U.和S.)

我现在需要的是一个更好的regex1公式,只能在一个句子中找到首字母缩略词然后"合并"两个正则表达式以接收所有句子.

如果合并两个公式是不可能的(出于任何合理的原因),那么只考虑问题1,因为目前我的JAVA程序使用两个公式分开:

public void breakIntoSentences()
{   
    //Find all points
    Pattern p = Pattern.compile("([^.!?\\s][^.!?]*)");
    Matcher m = p.matcher(content);

    int allPoints = 0;
    while(m.find())
        allPoints++;

    //Find all acronyms with length 0-4
    p = Pattern.compile("([A-Z]+[a-z]{0,3}\\.)");
    m = p.matcher(content);

    int allAcronyms = 0;
    while(m.find())
        allAcronyms++;

    numberOfSentences = allPoints - allAcronyms;        
}
Run Code Online (Sandbox Code Playgroud)

提前感谢您的帮助

java regex

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

如何知道页面是从Viewpager的Tab的Swipe还是Click中选择的

我有一个工具栏选项卡的 ViewPager。

我必须知道用户点击标签的次数以及用户滑动和选择页面的次数。

为此,我正在使用 ViewPager.OnPageChangeListener()。

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

    }

    @Override public void onPageSelected(int position) {
         // Here i am sending the GA event
    }

    @Override public void onPageScrollStateChanged(int state) {

    }
  });
Run Code Online (Sandbox Code Playgroud)

OnPageSelected 被调用用于单击和滑动页面。我将如何区分所选页面是从选项卡的点击还是从 Viewpager 的滑动?

android android-viewpager android-tabs android-toolbar

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

通过迭代失败来设置多个跨度样式的文本

我通过多个span样式设置了几个单词,当我将带有样式的数组传递给方法时,结果中只有最后一个单词具有该样式.它省略了其他的话.为什么?在我的代码和执行下面.先感谢您.

//execution in code
charSequence = SpannableUtils.format(
        charSequence,
        new ParcelableSpan[]{new StyleSpan(Typeface.BOLD)},//or more
        new String[]{"Test1", "Test2"}
);

//method
public static CharSequence format(CharSequence charSequence, ParcelableSpan[] spans, String[] words) {
    SpannableStringBuilder ssb = new SpannableStringBuilder(charSequence);

    for (String word : words) {
        Pattern pattern = Pattern.compile(Pattern.quote(word));
        Matcher matcher = pattern.matcher(charSequence);

        for (ParcelableSpan span : spans) {
            while (matcher.find()) {
                ssb.setSpan(span, matcher.start(), matcher.end(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
            }
        }
    }

    return ssb;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我用'instance of'检查span的类型,然后我创建新的constructior它可以工作.为什么?

android text styles spannablestring

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

如何从Java中的简单音频识别Tensorflow教程实现网络的三层第一层

我正在尝试使用在Android应用程序中通过简单音频识别Tensorlow教程训练的模型,但是我想在网络中而不是在网络上实现三个第一层。基本上,我使用了Tensorflow教程中的训练(不做任何更改),但是冻结了模型而没有解码示例数据,计算频谱图和mfcc:

wav_data_placeholder

Tensor("wav_data:0, shape=(), dtype=string)
Run Code Online (Sandbox Code Playgroud)

coded_sample_data

DecodeWav(audio=(tf.Tensor 'decoded_sample_data:0' shape=(16000, 1) dtype=flat32), sample_rate(tf.Tensor 'decoded_sample_data:1' shape=() dtype=int32))
Run Code Online (Sandbox Code Playgroud)

频谱图

Tensor("AudioSpectrogram:0, shape=(1, 98, 257), dtype=float32)
Run Code Online (Sandbox Code Playgroud)

指纹输入

Tensor("Mfcc:0, shape=(1, 98, 40), dtype=float32)
Run Code Online (Sandbox Code Playgroud)

因此,我的冻结模型具有输入形状(1、98、40),并采用mfcc方法计算得出的值,该方法具有来自频谱图输出的输入值和来自解码样本数据的输入。

我在Java中尝试了librosa mfcc实现,但不幸的是,它没有提供相同的结果。

如何在Android应用程序中计算.wav文件,以成功满足模型输入以获得正确的预测?

java android speech-recognition neural-network tensorflow

5
推荐指数
0
解决办法
92
查看次数