小编has*_*ikh的帖子

如何更改布局文件中可绘制形状的颜色

我创造了一个可绘制的圆形形状.我使用它作为我的线性布局的背景.它工作正常.但问题是,我想创建6个不同颜色的圆圈.那么我只能使用一个可绘制的形状并改变其不同圆的颜色吗?

这是我的可绘制圆形

<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="oval"
>

<solid
    android:color="@color/colorPrimary"
    />
<size
    android:width="30dp"
    android:height="30dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

我想使用不同颜色的可绘制圆形创建此布局.

布局: 在此输入图像描述

android android-layout

10
推荐指数
2
解决办法
5234
查看次数

保护Android App免受逆向工程

我想100%保护我的应用程序并且不希望黑客进入内部.

这些是我从Stack Overflow中找到的解决方案.

  1. 在应用程序中集成Proguard.

  2. 在C/C++中保留代码中最重要的部分.

  3. 使用NDK将代码本机编写到.So文件中.

  4. 使用MD5加密api密钥.

那么有没有其他方法可以完全保护我的Android应用程序免受黑客攻击,或者这是上述提到的最佳解决方案.

这些是我发现的参考文献

如何避免APK文件的逆向工程?

如何防止Android APK文件的逆向工程以保护代码?

security android reverse-engineering

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

在 Android 中设置密码时如何在锁定屏幕上显示活动

我试图在屏幕锁定时显示活动。我正在后台运行一个服务,当事件发生时,即使应用程序被锁定,我也想打开一个活动(类似于闹钟应用程序,它唤醒屏幕并显示其活动)。我已按照以下步骤操作,

当调用 OnReceive() 时,我想在锁定屏幕上打开活动。

public void OnReceive() {
            PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
            PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK | PowerManager.ACQUIRE_CAUSES_WAKEUP, "myalarmapp:alarm.");
            wl.acquire(5000);

            Intent startAlarmActivity = new Intent(MainScreen.this, AcceptScreen.class);

            startActivity(startAlarmActivity);

            wl.release();
        }
Run Code Online (Sandbox Code Playgroud)

在我想展示的活动的 onCreate 方法中添加了以下代码,

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {

        setShowWhenLocked(true);
        setTurnScreenOn(true);
        KeyguardManager keyguardManager = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
        keyguardManager.requestDismissKeyguard(this, null);
    }
    else {
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD |
                WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED |
                WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON |
                WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    }
Run Code Online (Sandbox Code Playgroud)

在清单中添加了我想要显示的活动,

<activity
        android:name=".v2.ui.orderaccept.AcceptScreen"
        android:exported="true"
        android:label="@string/title_activity_accept_screen"
        android:theme="@style/AppTheme.NoActionBar"
        android:showOnLockScreen="true"
        android:screenOrientation="sensorPortrait"/>
       
Run Code Online (Sandbox Code Playgroud)

当手机没有锁屏密码时,它可以按预期工作。但当锁屏有密码时就不起作用了。

android alarm lockscreen alarmmanager android-activity

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

发布状态:Playstore Android被拒绝

我已删除了该应用程序的所有敏感权限。

在“合规性”状态中,我选择“ 是”,此版本符合SMS和“呼叫日志”权限策略

在核心功能中,我选择了基于SMS的金融交易和相关活动,其中访问仅限于金融SMS交易(例如5位数字的消息)

并将该应用提交到Playstore。

在审查构建后,该构建被拒绝并获得了此回复,

确定已声明的功能{默认SMS处理程序(以及默认处理程序时使用的其他任何核心功能),默认电话处理程序(以及默认处理程序时使用的其他任何核心功能)}}不必要或与应用程序的核心功能不符。

我没有使用任何敏感权限,但仍拒绝生成。

由于我没有使用核心功能的权限,因此不允许在未选择任何核心功能的情况下进行保存和推出。

因此,如何进行此操作以使构建获得批准。

permissions android publishing google-play android-permissions

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

签名 APK 中的空响应 - 调试 APK 中的正确响应

我正在使用 Retrofit 进行网络调用。

我正面临签名 APK 的奇怪问题。

改造请求,

@FormUrlEncoded
@Headers("Accept: application/json")
@POST("******")
Call<UserInfoResponse> authenticateUser(@Field("umMobileNumber") String websiteId,
                                    @Field("spPassword") String loginSource);
Run Code Online (Sandbox Code Playgroud)

在上述请求的响应中,我得到了正确的响应,如果我在调试版本上运行它。

但同样的事情,如果我使用签名 APK,我在响应中得到一个空对象。

下面回复,

{
"isValid": true,
"accessToken": "",
"isValidToken": true,
"serviceBean": {
    },
"customerExist": false,
"singleSessionFlag": false
 }
Run Code Online (Sandbox Code Playgroud)

在 Singed Apk 中,我将 serviceBean 设为 null。

在谷歌上没有得到任何解决方案。

有人可以帮我解决这个问题吗?

debugging android json apk retrofit2

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