ご存知のように、Googleデベロッパーポリシーによると、アプリのコア機能がSMSに依存しない場合は、RECEIVE_SMS Android権限を削除して、検索してみてください。別の選択肢。
しかし、私の問題は、マニフェストまたはランタイムの要求でRECEIVE_SMSを使用していないことです。それでも、GoogleはRECEIVE_SMS権限を使用することを警告しています。
Playストアにありますが、このアプリで必要な権限を確認すると、RECEIVE_SMSの権限が表示されます。
誤ってどこかで使用している場合、この権限を検索したアプリのスクリーンショットの一部を見ることができます。
しかし、私はそれを見つけることができません。
また、これはマニフェストにあります:
ご覧のとおり、私はその許可を求めておらず、マニフェストや実行時にも求めていません。
FirebasePhone認証とPayUMoneyPaymentの統合を使用しています。これら2つが問題を引き起こしている可能性はありますか?または、内部でこの許可を求めています。
この許可がどこから来ているのかわかりません。
誰かがこの問題で私を助けることができればそれは大きな助けになるでしょう。
同じ問題に直面している人はいますか?
問題はPayUMoneyライブラリにあります。 Firebase PhoneAuthはRECEIVE_SMS
権限を要求していないためです。
できることは、ライブラリを1つずつ削除して、それでもRECEIVE_SMS
権限を要求しているかどうかを確認することです。
これを引き起こしているライブラリが見つかった場合は、これをAndroidマニフェスト
<uses-permission
Android:name="Android.permission.RECEIVE_SMS"
tools:node="remove" />
これにより、ライブラリが内部でこの権限を要求するのを防ぐことができます。また、この行をアプリマニフェストに追加した後、この権限なしでライブラリが機能しているかどうかを確認してください。
特定の質問については、PayUMoneyがFirebaseではなくこの問題を引き起こしているため、この行をマニフェストに追加できます。 PayuMoneyが機能していることを確認します。
Firebase Phone認証では、SMSを使用して認証する必要があります。だからあなたの許可が必要です。これがこのエラーが発生する理由です。これは簡単な言い方です。 SMS権限を含めてください。
また、権限を簡単に操作できるように、このライブラリを試して使用してください。
implementation 'gun0912.ted:tedpermission:2.2.2
そして、許可が必要なときはいつでもそうしてください。
`パブリッククラスGrantPermisions {
public static void givePermision(final Context context){
PermissionListener permissionlistener = new PermissionListener() {
@Override
public void onPermissionGranted() {
}
@Override
public void onPermissionDenied(List<String> deniedPermissions) {
}
};
TedPermission.with(context)
.setPermissionListener(permissionlistener)
.setDeniedMessage("If you reject permission,you can not use this service\n\nPlease turn on permissions at [Setting] > [Permission]")
.setPermissions(Manifest.permission.INTERNET,
Manifest.permission.READ_SMS,
Manifest.permission.READ_CALL_LOG)
.check();
}
} `
あなたがそれを修正することを願っています。生産は仲間を待っています!!!