小编Tan*_*.7x的帖子

棉花糖中的手电筒控制

我在最近的Marshmallow构造中有关于相机的问题,更具体地说是手电筒.在任何预先Marshmallow版本上,我需要做的就是打开/关闭闪光灯,如下所示:

private void turnFlashOn(final Camera camera, int flashLightDurationMs) {
    if (!isFlashOn()) {
        final List<String> supportedFlashModes = camera.getParameters().getSupportedFlashModes();
        if (supportedFlashModes != null && supportedFlashModes.contains(Camera.Parameters.FLASH_MODE_TORCH)) {
            mParams.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
            camera.setParameters(mParams);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

private void turnFlashOff(Camera camera) {
    if (camera != null) {
        final List<String> supportedFlashModes = camera.getParameters().getSupportedFlashModes();
        if (supportedFlashModes != null && supportedFlashModes.contains(Camera.Parameters.FLASH_MODE_OFF)) {
            mParams.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
            camera.setParameters(mParams);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,Marshmallow设备开始在野外崩溃.不知何故,camera.getParameters()camera.setParameters()开始失败的消息,如:

RuntimeException:getParameters失败(空参数)

RuntimeException:setParameters失败

我尝试在获取参数之前启动并停止预览,这不再引发错误.但是,当我打电话时,预览不会恢复camera.startPreview().

我担心释放相机并重新打开它是不可能的,因为这需要几秒钟而且会产生糟糕的体验.

有关如何可靠地打开/关闭Marshmallow手电筒的任何建议吗?

camera android android-camera flashlight android-6.0-marshmallow

13
推荐指数
2
解决办法
6126
查看次数

如何在gradle构建文件中的其他位置访问buildConfigField

我试图在我的productFlavor块中设置buildConfigField,然后在我的gradle构建文件中的其他位置引用该字段,以便在构造apk的名称时可以使用此值.

例如

productFlavors{
    flavor1{            
        buildConfigField "String", "APP_FLAVOR_NAME", '"MyApp-Flavor1"'

    }
    flavor2{            
        buildConfigField "String", "APP_FLAVOR_NAME", '"MyApp-Flavor2"'

    }
Run Code Online (Sandbox Code Playgroud)

如何在build.gradle脚本中的其他位置访问APP_FLAVOR_NAME?

我也在努力弄清楚如何在buildscript中引用flavor名称本身作为构建apk名称的另一个选项.我怎么能这样做?

android gradle android-productflavors

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

file:/// android_res/drawable在使用flavor与其他包名称时不起作用

我的问题是,在我向我的项目添加了flavor之后,包名称与实际源不同的风味似乎在访问文件时遇到了问题 android_res/drawable.

更具体地说,我有一个调用以下图像的html视图.

<img src="file:///android_res/drawable/image.png">
Run Code Online (Sandbox Code Playgroud)

该图像显示在生产flavor中,其包名称与java文件的目录相同,但它不适用于beta版本:

productFlavors {
    production {
        packageName "com.company.myapp"
    }

    beta {
        packageName "com.company.beta"
    }
}
Run Code Online (Sandbox Code Playgroud)

其中包含java文件的实际目录

java/com/company/myapp
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为资源甚至不在该文件夹中.

android gradle android-webview android-productflavors

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

从android中获取SeekBar的值

如何从中获取值SeekBar

  • 我有一个类的代码有三个SeekBars(PRICEbar)
  • 我想将这些SeekBars的值作为Intents传递给下一个Activity(屏幕)
  • 我知道如何实现OnClickListener但是如何从SeekBars中提取值?

例如:如果PRICEbar指向值10 ......我需要得到值10

Filters.java

public class Filters extends Activity implements OnSeekBarChangeListener{

    // declare text objects variables
    private SeekBar PRICEbar; 
    private TextView PRICEtextProgress,DISTANCEtextProgress, RATINGtextProgress;
    Button back;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // load the layout
        setContentView(R.layout.filters);   

        PRICEbar = (SeekBar)findViewById(R.id.PRICEseekBarID); // make seekbar object
        PRICEbar.setOnSeekBarChangeListener(this); 
        PRICEbar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

            @Override
            public void onStopTrackingTouch(SeekBar seekBar) {
                // TODO Auto-generated method stub
            }

            @Override …
Run Code Online (Sandbox Code Playgroud)

java android

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

不推荐使用GAServiceManager类型的方法setLocalDispatchPeriod(int)

我有最新的谷歌Android分析SDK,似乎setLocalDispatchPeriod(int)已被弃用.有什么办法解决这个问题?

互联网上没有哪里可以找到替代方法.最有趣的是,谷歌在他们自己的如何入门教程中使用了这种方法.

现在有人知道任何替代方法吗?

android google-analytics

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

gradle中的多风格编译依赖项

有没有办法在Android Studio(build.gradle)中通过多种口味编译依赖项?

我有2个flavorGroups,每2个变种.在4种可能的组合中,我希望能够依赖于lib,只要我是最新的和免费的.latestCompile或freeCompile有效,但latestFreeCompile没有.这是我的build.gradle的相关部分:

android {
    defaultConfig {
        minSdkVersion 7
        targetSdkVersion 19
        versionCode 15
        versionName "1.9." + versionCode
    }

    flavorGroups 'sdk', 'cost'

    productFlavors {
        latest {
            flavorGroup 'sdk'
            minSdkVersion 8
        }
        sdk7 {
            flavorGroup 'sdk'
            minSdkVersion 7
            versionName android.defaultConfig.versionName + ".sdk7"
        }
        free {
            flavorGroup 'cost'
        }
        pro {
            flavorGroup 'cost'
        }
    }
}
dependencies {
    // this works:
    freeCompile files('libs/StartAppInApp-2.2.1.jar')

    // and I would like something like this:
    latestFreeCompile 'com.google.android.gms:play-services:4.1.32' // minSdkVersion:8
}
Run Code Online (Sandbox Code Playgroud)

如果我愿意的话:

latestCompile 'com.google.android.gms:play-services:4.1.32'
Run Code Online (Sandbox Code Playgroud)

那么它也将被包含在latestPro中(不需要),如果我使用:

freeCompile 'com.google.android.gms:play-services:4.1.32'
Run Code Online (Sandbox Code Playgroud)

然后它也将包含在sdk7Free中(虽然它需要SDK …

dependencies android gradle android-gradle-plugin android-productflavors

11
推荐指数
2
解决办法
5375
查看次数

如何在一行中运行多个命令?

我试图在一行上运行多个命令,例如

(gdb) info threads; c
Args must be numbers or '$' variables.
Run Code Online (Sandbox Code Playgroud)

但看起来gdb不支持.有任何想法吗?

linux debugging gdb

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

OpenCv4Android和C++数据类型之间的混淆

我正在尝试使用OpenCv4Android为Android设备编写一些应用程序.早些时候,我使用的是Android NDK和C++本机代码.但这种技术并不是很清晰.所以我切换到最新的Java API以及OpenCv 2.4.4版本.

我能够编写简单的程序并运行示例.但是,虽然我试图为高级问题编写一些代码,如模型POSE估计,相机校准程序等,但我遇到了这种非常奇怪的混乱.在C++ API中名称非常直观的一些数据类型并不真正适合它们的Java对应物.因此,我将我的功能从C++移植到Java面临着可怕的困难.我在这些职能上面临着完全混乱

  • Point2f(在C++中) - MatOfPoint2f(在Java中)
  • Point3f(在C++中) - MatOfPoint3f(在Java中)
  • Point2(Java中)
  • Point3(Java)

请帮助我理解OpenCv Java中使用的术语及其与C++的类比.

另外,请给我一些参考,其中给出了这些术语的清晰和清晰的描述(我试着看一下提供的帮助,但它对我没什么帮助,因为它对C++和Java来说有点类似).

android opencv

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

Android启动错误的活动

当我启动应用时,Android正在启动错误的活动.

Manifest.xml:

<activity
    android:name="com.company.app.activities.RS_SplashScreenActivity"
    android:label="@string/app_name" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />

        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity
    android:name="com.company.app.activities.RS_PreviousLauncherActivity"
    android:label="@string/app_name"
    android:theme="@style/myTheme" >
</activity> 
Run Code Online (Sandbox Code Playgroud)

我添加了一个新的Activity RS_SplashScreenActivity并将其设置为启动器活动.它还试图RS_PreviousLauncherActivity在添加之前启动曾经是一个启动器活动RS_SplashScreenActivity.

我确信android会从控制台的以下日志中选择错误的启动器活动.

安慰 :

[2013-10-10 12:03:58 - app] Android Launch!
[2013-10-10 12:03:58 - app] adb is running normally.
[2013-10-10 12:03:58 - app] Performing com.company.app.activities.RS_PreviousLauncherActivity activity launch
[2013-10-10 12:04:01 - app] Uploading app.apk onto device '5C78E6332221CD6A1'
[2013-10-10 12:04:05 - app] Installing app.apk...
[2013-10-10 12:04:12 - app] Success!
[2013-10-10 12:04:12 - app] Starting activity com.company.app.activities.RS_PreviousLauncherActivity …
Run Code Online (Sandbox Code Playgroud)

android android-activity android-launcher

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

Gradle预处理资产

我想在构建阶段对资产做一些事情.这是我的gradle脚本.

project.afterEvaluate{
    prepareDependencies.dependsOn("generateMyAssets")
}

task generateMyAssets() {
    copy {

        from('/') {
            include '**/*.html'
            filter {
                line -> line.replaceAll(/(<img src=\")(?!(.*:.*))/, '<img src="assets:')
            }
        }

        into 'assetsRegxped/'
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,如果有味道,如何灵活检索资产文件夹的名称(路径).另外我怎么才能改变构建版本?

android gradle gradlew android-productflavors

7
推荐指数
0
解决办法
359
查看次数