小编Ben*_*ock的帖子

Android设备上的PowerManager.WakeLock

我想在我的Android应用程序中实现一个WakeLock.我在onCreat()中有以下代码:

pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
myWakeLock = pm.newWakeLock(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,"WakeLock for Tuner");
Run Code Online (Sandbox Code Playgroud)

导致崩溃的第二行.它抛出一个致命的例外.据我所知,Android说第一个Argument没有有效的唤醒锁定级别.但是在开发者网站上,建议使用FLAG_KEEP_SCREEN_ON,这样我就有点困惑了(http://developer.android.com/reference/android/os/PowerManager.html#newWakeLock%28int,%20java.lang.String% 29)

我是否必须使用已弃用的PowerManager.FULL_WAKE_LOCK?

以下代码,如问题中建议的如何让Android WakeLock工作?,在我看来,这不是正确的方式.

getWindow().addFlags(LayoutParams.FLAG_KEEP_SCREEN_ON);
Run Code Online (Sandbox Code Playgroud)

我不需要为洞穴应用程序唤醒.该应用程序是仪器的调谐器,只应在调谐器运行时保持清醒状态.该计划是在startTuner()方法中调用myWakeLock.acquire(),在stopTuner()方法中调用类似myWakeLock.release().我不知道如何以建议的方式实现这一点.

这是完整的异常消息:

04-13 19:21:14.815: E/AndroidRuntime(9452): FATAL EXCEPTION: main
04-13 19:21:14.815: E/AndroidRuntime(9452): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.benediktbock.ffttest/de.benediktbock.ffttest.MainActivity}: java.lang.IllegalArgumentException: Must specify a valid wake lock level.
04-13 19:21:14.815: E/AndroidRuntime(9452):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2249)
04-13 19:21:14.815: E/AndroidRuntime(9452):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2299)
04-13 19:21:14.815: E/AndroidRuntime(9452):     at android.app.ActivityThread.access$700(ActivityThread.java:154)
04-13 19:21:14.815: E/AndroidRuntime(9452):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284)
04-13 19:21:14.815: E/AndroidRuntime(9452):     at android.os.Handler.dispatchMessage(Handler.java:99)
04-13 19:21:14.815: E/AndroidRuntime(9452):     at android.os.Looper.loop(Looper.java:137)
04-13 19:21:14.815: E/AndroidRuntime(9452):     at android.app.ActivityThread.main(ActivityThread.java:5306) …
Run Code Online (Sandbox Code Playgroud)

java android wakelock powermanager

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

带有IO :: Socket :: SSL的SSL_ca_path不使用目录中的证书

我想使用SSL_ca_pathssl选项,因为它更可靠.问题是它不使用给定目录中的证书.

此代码有效:

  local $NET::HTTPS::SSL_SOCKET_CLASS = 'IO::Socket::SSL';
  my $ua = LWP::UserAgent->new(ssl_opts => {
    SSL_ca_file => "/etc/pki/tls/certs/ca-bundle.crt",
  #  SSL_ca_path => "/etc/pki/tls/certs/",
  });
Run Code Online (Sandbox Code Playgroud)

但使用SSL_ca_path而不是SSL_ca_file打破脚本.

不工作

  local $NET::HTTPS::SSL_SOCKET_CLASS = 'IO::Socket::SSL';
  my $ua = LWP::UserAgent->new(ssl_opts => {
  #  SSL_ca_file => "/etc/pki/tls/certs/ca-bundle.crt",
    SSL_ca_path => "/etc/pki/tls/certs/",
  });
Run Code Online (Sandbox Code Playgroud)

既不将证书重命名为*.pem也不删除/路径中的尾部都可以解决问题.

目录和文件的权限和所有者是相同的(770)

完整的脚本:https://github.com/Benedikt1992/nagios-jenkins-plugin/blob/master/check_jenkins_job_extended.pl#L71-L75

verification perl ssl lwp-useragent

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

因为onDestroy而导致的Android片段被调用两次,onViewStateRestored()无法正常工作

我正在编程一个调谐器.调谐器是一个片段.我的目标是在手机在横向和纵向模式之间切换时保持调谐器运行.因此,我使用onSaveInstanceState()保存实际状态,并使用onViewStateRestored()恢复它.这实际上非常好.但是我有一个大问题:当片段重建onDestroy()时,onCreateView()和onViewStateRestored()会再次执行.这会导致崩溃.任何想法如何解决它?

在代码下方,请询问您是否需要更详细的代码:

public class TunerFragment extends BasicFragment
{
    //View Elemente
        public boolean controlButtonUnclicked = true;
        private static final String LOG_TAG = "FFTTEST";
        private final Semaphore bufferZugriff = new Semaphore(1, true);


        //Objecte zur Aufnahme
        private int channel_config = AudioFormat.CHANNEL_IN_MONO;
        private int format = AudioFormat.ENCODING_PCM_16BIT;
        private int sampleRate = 44100;
        private int bufferSize = AudioRecord.getMinBufferSize(sampleRate, channel_config, format)*8; // je größer der Buffer, desto genauer die FFT!!
        private AudioRecord audioInput = null; //new AudioRecord(AudioSource.MIC, sampleSize, channel_config, format, bufferSize);
        private short[] audioBuffer = new …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

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

StringBuffer - 字符串索引超出范围

以下代码应该像hans-> snah一样反转String

StringBuffer hilfsbuffer = new StringBuffer(1);

for (int i = 0; i < buffer.length()/2; i++) {
  hilfsbuffer.setCharAt(0, buffer.charAt(i)); //Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
  buffer.setCharAt(i, buffer.charAt(buffer.length()-1-i));
  buffer.setCharAt(buffer.length()-1-i, hilfsbuffer.charAt(0)); //Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
}
Run Code Online (Sandbox Code Playgroud)

在评论中,您可以看到错误.

如有需要,请询问更多详情.

java

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