小编Ari*_*Roy的帖子

Android中设备重启后广播接收器无法正常工作

我已经检查了所有相关问题,但没有找到解决此问题的任何方法.所以这对我来说是一个绝对新的问题.

是)我有的

我有一个Android应用程序,它在其清单中注册了几个广播接收器.这就是我的清单看起来的样子.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.app.myapp">

    <uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.USE_FINGERPRINT" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.READ_CALL_LOG" />
    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
    <uses-permission android:name="com.android.vending.BILLING" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />

    <uses-feature
        android:name="android.hardware.telephony"
        android:required="false" />

    <uses-feature
        android:name="android.hardware.screen.portrait"
        android:required="false" />

    <application
        android:name=".base.MyApp"
        android:allowBackup="false"
        android:icon="@drawable/ic_launcher"
        android:label="@string/label_app_name"
        android:largeHeap="true"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:replace="label, allowBackup">

        <receiver android:name=".mics.BootReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
                <action android:name="android.intent.action.QUICKBOOT_POWERON" />
            </intent-filter>
        </receiver>

        <receiver android:name=".PhoneCallReceiver">
            <intent-filter>
                <action android:name="android.intent.action.NEW_OUTGOING_CALL" …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-broadcast android-broadcastreceiver

49
推荐指数
3
解决办法
2万
查看次数

Firebase @PropertyName不起作用

故事

我在我的应用中使用Firebase实时数据库.我有一个像这样的模型.

class Item {
    int mItemName;
    // Simplified for brevity
}
Run Code Online (Sandbox Code Playgroud)

现在,它将该字段存储itemName在我的实时数据库中.但我不想使用该命名约定.我希望命名模式是这样的item_name.

我做了什么

我在这个字段上方使用@PropertyName("item_name"),

class Item {
        @PropertyName("item_name")
        int mItemName;
        // Simplified for brevity
    }
Run Code Online (Sandbox Code Playgroud)

问题

Firebase似乎完全忽略了注释.我无法更改序列化和反序列化的属性名称.

任何帮助将受到高度赞赏.

编辑

这是关注的完整模型类,

public class FileModel {

        @PropertyName("file_id")
        String mFileId;
        @PropertyName("file_name")
        String mOriginalFileName;
        @PropertyName("file_path")
        String mFilePath;
        @PropertyName("file_type")
        String mFileType;
        @PropertyName("last_modified")
        Long mFileLastModified;
        @PropertyName("file_size")
        String mFileSize;
        @Exclude
        private boolean mIsSelected;

        /**
         * Must have empty constructor for JSON deserialization by Firebase
         */
        public FileModel() {
        }

        public FileModel(String fileId, …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-realtime-database

24
推荐指数
3
解决办法
4341
查看次数

旋转带动画的图像

图像的两种状态

是)我有的

我有一个箭头图像(如左图).当用户点击它时,它应该用动画旋转180度,看起来应该是正确的.

我做了什么

private void rotate(float degree, final int toggleV) {

        final RotateAnimation rotateAnim = new RotateAnimation(0.0f, degree,
                RotateAnimation.RELATIVE_TO_SELF, 0.5f,
                RotateAnimation.RELATIVE_TO_SELF, 0.5f);

        rotateAnim.setDuration(500);
        toggle.startAnimation(rotateAnim);
        rotateAnim.setAnimationListener(new Animation.AnimationListener() {

            @Override
            public void onAnimationStart(Animation animation) {

            }

            @Override
            public void onAnimationEnd(Animation animation) {


                if (toggleV == 1)
                    toggle.setImageResource(R.drawable.toggle_up);
                else
                    toggle.setImageResource(R.drawable.toggle_down);
            }

            @Override
            public void onAnimationRepeat(Animation animation) {

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

问题

我看到动画工作正常,但设置图像时有一点闪烁.可能是因为动画结束和设置图像时的时差.

如何删除此闪烁问题?你有更好的方法吗?

android image-rotation android-animation android-imageview

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

Firebase卡在没有INTERNET连接上

在我的应用中,我使用的是Firebase数据库.现在,当我正在侦听特定位置的子节点的任何更改时,如果没有Internet连接,则不会触发回调.firebase电话被卡住了.

我用这个,

FirebaseDatabase firebaseDatabase = FirebaseDatabase.getInstance();
firebaseDatabase.setPersistenceEnabled(true);
Run Code Online (Sandbox Code Playgroud)

因此,启用了持久性.问题只出现在一个场景中.当Firebase的本地持久性没有数据且互联网连接也不可用时.

我用这个,

addListenerForSingleValueEvent(new ValueEventListener() {
                        @Override
                        public void onDataChange(DataSnapshot dataSnapshot) {

                        }

                        @Override
                        public void onCancelled(DatabaseError databaseError) {
                            Timber.d("Cancelled");
                        }
                    });
Run Code Online (Sandbox Code Playgroud)

我没有得到该特定场景的两个回调中的任何一个.

我应该怎么做才能解决这种情况?

android firebase firebase-realtime-database

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

使用Firebase在GoogleApiClient中出现罕见的NullPointerException

我使用GoogleApiClient使用他们的Google帐户登录用户.基本上,我使用Firebase Auth与Google登录.

但我每天都会在某些设备上崩溃.当我在我自己的一些设备(OnePlus 3,Nexus 5X,Moto G等)上进行测试时,我从未看到过这种崩溃.

Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.toLowerCase(java.util.Locale)' on a null object reference
       at com.google.android.gms.internal.zzamy.zzd(Unknown Source)
       at com.google.android.gms.internal.zzamv.n(Unknown Source)
       at com.google.android.gms.internal.zzamv.zza(Unknown Source)
       at com.google.android.gms.internal.zzamv$2.run(Unknown Source)
       at java.lang.Thread.run(Thread.java:818)
Run Code Online (Sandbox Code Playgroud)

这就是我正在做的实例化GoogleApiClient.我没有看到正常情况下的崩溃,但在某些设备中我看到了这一点.这是我在代码中所做的事情,

String mClientId = parcel.getProviderExtra().getString(CLIENT_ID_KEY);
GoogleSignInOptions googleSignInOptions;

googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestIdToken(mClientId)
                .requestEmail()
                .build();

mGoogleApiClient = new GoogleApiClient.Builder(App.getContext())
                .addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
                .build();

mGoogleApiClient.connect();
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?我最好的选择是,App.getContext()它为应用程序上下文提供实例化客户端.这可能是问题吗?

我可以使用活动上下文,但使用它会导致内存泄漏.这里有什么问题,如何解决?

对于在打开应用程序并尝试唱歌之后发生崩溃的用户,这会产生非常糟糕的体验.

android google-api-java-client google-api-client firebase firebase-authentication

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

Firebase电子邮件验证无法正常运行

是)我有的

我在我的应用中使用Firebase身份验证,用户可以使用电子邮件和密码进行注册.如果用户尚未验证其电子邮件,则会在验证其电子邮件之前禁用某些功能.

我还有一个按钮来显式触发验证邮件,它只是调用,sendEmailVerification().它工作正常,始终发送验证邮件.

问题

用户获取验证邮件,但当他/她验证并返回应用程序时,isEmailVerified()始终为假.所以我的应用程序仍然不允许用户使用所有功能,尽管他/她已经验证了他们的电子邮件.

但如果他们注销并再次登录,则isEmailVerified()立即返回true.但是注销用户并再次登录是不好的.

它是Firebase中的错误吗?或者我做错了什么?

android firebase firebase-authentication

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

SearchView在Android中展开/折叠动画

是)我有的

我有一个SearchView,可以完美地完成它的工作.但当我触摸它时,它会出现并从无到有中消失.没有过渡动画播放,因此看起来不太好.

我想要的是

我想要一个简单的向左滑动和向右滑动动画在分别展开和折叠时在SearchView上播放.

我试过的

SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
//Get the ID for the search bar LinearLayout
int searchBarId = searchView.getContext().getResources().getIdentifier("android:id/search_bar", null, null);
//Get the search bar Linearlayout
LinearLayout searchBar = (LinearLayout) searchView.findViewById(searchBarId);
//Give the Linearlayout a transition animation.
searchBar.setLayoutTransition(new LayoutTransition());
Run Code Online (Sandbox Code Playgroud)

但是searchBar总是为null,所以我无法在其上设置布局转换.

我可以为它找到解决方案吗?我的方法是否正确?

android android-animation android-actionbar

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

禁用或删除用户时,不会触发Firebase身份验证状态更改

在引擎盖下

我在Android应用中使用Firebase身份验证,使用Google,Facebook和电子邮件/密码注册用户.到目前为止,除了单个场景之外,几乎所有内容都能正常工

情景

我需要禁用删除 Firebase控制台中的用户帐户,以禁止我的应用的某些用户.

在这种情况下,当我禁用或删除该特定用户时,用户必须立即从应用程序注销,并且不能再使用它.

错误

我已经使用它AuthStateListener来监听身份验证状态更改,并在他们的帐户被禁用或删除后自动注销用户.

FirebaseAuth.getInstance().addAuthStateListener(firebaseAuth -> {
            if (firebaseAuth.getCurrentUser() == null) {
                Intent intent = AuthFlowActivity.getCallingIntent(AuthFlowActivity.FORCE_LOGOUT);
                intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                startActivity(intent);
                activityExitAnimation(BaseAppActivity.this);
            }
        });
Run Code Online (Sandbox Code Playgroud)

但我从未见过AuthStateListener触发这些操作的任何事件.所以我无法立即注销用户,用户仍然可以继续使用该应用程序.

如果有人可以帮助解决这个问题,我将不胜感激.

android firebase firebase-authentication

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

Google Play订单ID已更新为新格式

我最近购买的所有Android应用都显示了新的订单ID格式.

OLD格式:

[merchant ID].[actual order ID]
Run Code Online (Sandbox Code Playgroud)

我们可以使用此格式来检查订单ID的前缀是否与商家ID匹配,并防止像Freedom这样的应用程序可能存在黑客攻击.

新格式:

GPA. 1234-5678-9123-45678
Run Code Online (Sandbox Code Playgroud)
  • 我最近的所有订单都以" GPA " 开头.(是的,附加点也在那里)
  • 有一个17位数字,分为4个街区
  • 前3个块每个包含4个数字,最后3个包含5个数字

我想知道这个数字代表什么,子块的重要性,是否包含在任何地方的商家ID?

android in-app-purchase in-app-billing android-pay

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

Android中的Firebase本地数据库有多安全?

我计划切换到Firebase作为我的Android应用程序的本地和在线数据库.根据文档,Firebase首先存储对本地数据库的更改,然后在网络可用时将其推送到在线数据库.

在我的应用程序中,我将在数据库中放置一些关于用户的非常敏感的数据.所以这是我的问题,

  1. 本地Firebase数据库的安全性如何?

  2. 一个好心的黑客用正确的工具来破解它有多难?

  3. 它只是一个简单的JSON文件,如在线数据库,任何具有root访问权限的人都可以打开吗?

谢谢.

android firebase firebase-realtime-database

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