小编kev*_*liu的帖子

具有处理异常的Android ACRA

我正在使用ACRA(Android的应用程序崩溃报告)在发生未处理的异常时发送数据.

像openFileOutput()这样的方法要求我尝试捕获iOExceptions.由于异常位于try catch块中,因此不会触发ARCA.但是我仍然希望收到并看到堆栈跟踪.有没有办法实现这个目标?

android exception report try-catch

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

音量变化听众?

有没有办法用Android服务监听音量变化并对此作出反应?

顺便说一句:即使音乐在后台播放,Google音乐应用程序如何允许用户控制媒体音量?

media service android volume broadcastreceiver

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

如何读取android进程命令的输出

我试图用java获取android shell命令'getprop'的输出,因为无论如何,getprop()始终返回null.

我试过developer.android.com:

        Process process = null;
    try {
        process = new ProcessBuilder()
           .command("/system/bin/getprop", "build.version")
           .redirectErrorStream(true)
           .start();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

     InputStream in = process.getInputStream();

     //String prop = in.toString();
     System.out.println(in);

     process.destroy();
Run Code Online (Sandbox Code Playgroud)

然而,打印的不是输出而是一堆字符和数字(现在没有确切的输出).

如何获得流程的输出?

谢谢!

android process

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

Canvas.clipPath上的Android UnsupportedOperationException

我在我的项目中使用来自https://github.com/lvillani/android-cropimage的图像裁剪库来裁剪存储在设备上的图像.

但是,某些用户使用以下堆栈跟踪报告崩溃

java.lang.UnsupportedOperationException
at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:413)
at com.android.camera.HighlightView.draw(HighlightView.java:101)
at com.android.camera.CropImageView.onDraw(CropImage.java:783)
at android.view.View.draw(View.java:11006)
at android.view.View.getDisplayList(View.java:10445)
at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
at android.view.View.getDisplayList(View.java:10443)
at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
at android.view.View.getDisplayList(View.java:10443)
at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
at android.view.View.getDisplayList(View.java:10443)
at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
at android.view.View.getDisplayList(View.java:10443)
at android.view.ViewGroup.drawChild(ViewGroup.java:2850)
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2489)
at android.view.View.draw(View.java:11009)
at android.widget.FrameLayout.draw(FrameLayout.java:450)
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2154)
at android.view.View.getDisplayList(View.java:10445)
at android.view.HardwareRenderer$GlRenderer.draw(HardwareRenderer.java:853)
at android.view.ViewRootImpl.draw(ViewRootImpl.java:1961)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1679)
at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2558)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4697)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:554)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

从搜索我认为它只是由某些设备上的硬件加速引起的.我在清单中禁用了硬件加速,但异常仍在发生.我还发现"一个可靠的解决方法是识别代码中有问题的操作,将其绘制到位图中,然后将位图blit到加速画布."

根据堆栈跟踪的有问题的代码是

protected …
Run Code Online (Sandbox Code Playgroud)

android exception android-canvas

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

创建滑块来改变Android音量?

有人能给我一个通过滑块改变音量的示例代码吗?我搜索过,很多教程都要求我创建一个全新的课程.有没有更简单的方法?

谢谢!

android slider

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

从 ConnectivityManager NetworkCapability 同步获取 Wifi SSID

目前,获取 Android 设备连接的 Wifi 网络 SSID 最流行的方法是使用 WifiManager 的 getConnectionInfo() 方法。但是,该方法在 API 级别 31 中已被弃用。根据文档,我们预计使用 ConnectivityManager 的 getNetworkCapability() 方法来获取 Wifi 信息。不幸的是,文档指出

这将删除 NetworkCapability#getTransportInfo() 中嵌入的 TransportInfo 中的所有位置敏感数据。某些传输信息实例(例如 WifiInfo)包含位置敏感信息。系统将记录检索此位置敏感信息(取决于应用程序的位置权限)。要在 TransportInfo 中包含任何位置敏感数据,请使用带有 NetworkCallback#FLAG_INCLUDE_LOCATION_INFO 标志的 NetworkCallback。

现在获取 SSID 的唯一方法似乎是使用 FLAG_INCLUDE_LOCATION_INFO 标志注册 NetworkCallback 并等待回调被调用。这不是旧方法的合适替代品,因为旧方法是同步的并且可以按需调用。目前是否有任何方法可以同步获取 Wifi SSID,而不使用已弃用的 getConnectionInfo() 方法?

android connectivity ssid wifi

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

Android覆盖布局位于接收触摸的所有窗口之上

我创建了一个使用以下代码显示在所有应用程序和窗口之上的视图:

        //These three are our main components.
    WindowManager wm;
    LinearLayout ll;
    WindowManager.LayoutParams ll_lp;

    //Just a sample layout parameters.
    wm = (WindowManager) getSystemService(WINDOW_SERVICE);
    ll_lp = new WindowManager.LayoutParams();
    ll_lp.format = PixelFormat.TRANSLUCENT;
    ll_lp.height = WindowManager.LayoutParams.FILL_PARENT;
    ll_lp.width = WindowManager.LayoutParams.FILL_PARENT;
    ll_lp.gravity = Gravity.CLIP_HORIZONTAL | Gravity.TOP;

    //This one is necessary.
    ll_lp.type = WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;

    //Play around with these two.
    ll_lp.flags = WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE;
    ll_lp.flags = ll_lp.flags | WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;

    //This is our main layout.
    ll = new LinearLayout(this);
    ll.setBackgroundColor(android.graphics.Color.argb(50, 255, 255, 255));
    ll.setHapticFeedbackEnabled(true);
    ll.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean …
Run Code Online (Sandbox Code Playgroud)

events layout android view touch

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

ConstraintLayout:将视图锚定到父级的中心,同时限制其尺寸以不与兄弟姐妹重叠

我在 ConstraintLayout 中水平排列了三个视图。我需要将中心视图锚定到父级的中心。棘手的部分是所有三个视图都有动态宽度。

如果我将中心视图水平限制到两端的两个视图,则如果其他两个视图具有不同的宽度,则中心视图将不会相对于父视图居中。相反,它将位于两个视图之间的自由空间的中心。

如果我将中心视图水平限制到父级,它将相对于父级居中。然而,中心视图随后可以变得足够宽以与末端的两个视图重叠。

我需要能够锚定中心视图,同时限制其宽度,以便它不能与最后的两个视图重叠。

我已经尝试过使用 LinearLayout、RelativeLayout 和 ConstraintLayout,但它们似乎都不能满足这两个标准。

任何帮助,将不胜感激!

layout android android-linearlayout android-relativelayout android-constraintlayout

6
推荐指数
0
解决办法
410
查看次数

用android服务检测音量键按下或音量变化的任何方法?

某些Android应用会在设备的音量发生变化时生成通知,有些会锁定音量.对于我的生活,我不知道如何做到这一点.请有人帮我提供一个例子吗?

service android volume detect

4
推荐指数
2
解决办法
7484
查看次数

Android启动器按启动器中的主页进入默认屏幕

在默认的android启动器中,在另一个活动中按home将启动启动器.在启动器中再次按home将重置为默认主屏幕页面.我不明白如何做到这一点.无论启动器是否在前台,Android都会发出相同的意图.主页密钥也不能被用户应用程序拦截.

有没有办法实现这个目标?

android android-intent android-launcher android-homebutton

4
推荐指数
2
解决办法
5550
查看次数