問題タブ [runtime-permissions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - ランタイム権限の呼び出し中にアクティビティが黒くなる
一部のビューをクリックして連絡先を読み取るために、実行時のアクセス許可を呼び出したいと思います。そのため、アプリに権限があるかどうか、権限を要求していないかどうかを確認します。ただし、リクエストダイアログが表示されると、ダイアログで許可または拒否がクリックされると、アクティビティが黒くなり、終了します。アプリをデバッグすると、許可または拒否をクリックした後、onRequestPermissionsResult メソッドに移動しません。
また、許可が受け入れられた場合は、連絡先のインテントを呼び出しています。選択した連絡先のリストと同じアクティビティでこれらを表示したいと考えています。このために、リストを作成し、連絡先をリストの onActivitResult メソッドに追加しました。
しかし、これについても、連絡先から連絡先を選択すると、アクティビティは終了します。onActivityResult メソッドには行きません。
奇妙なことに、以前は同じコードが正常に機能していました。旧バージョン用。また、古いバージョンの同じアクティビティを新しいバージョンにコピーしようとしましたが、それでも機能しません。
何が悪いのかわからない。
誰でも助けてもらえますか?ありがとうございました..
android - Androidマシュマロで許可を求めても位置情報を取得するコードが実行されない
このライブラリを使用してユーザーの現在地を取得しようとしています。
コードは Android M より前のバージョンで正常に場所を取得していますが、Android Marshmallow を搭載したデバイスでアプリを起動すると、コードの一部が実行されません!
私は onCreate() メソッドでこのコードを書きました:
Android マシュマロ デバイスでアプリを実行すると、このトーストが表示されません。Toast.makeText(getBaseContext(), "User's location retrieved using library", Toast.LENGTH_SHORT).show();
これは、このコードが実行されていないことを意味します。
このコードを書く前に、以下のコードを使用して許可を求めました。
onRequestPermissionsResult()
のコードは次のとおりです。
onRequestPermissionResult()
の場合でも場所を取得するコードを作成しましたPERMISSION_GRANTED
が、Android マシュマロ バージョンでは何も起こらず、場所も取得されません。
ここで何が問題なのか教えてください!
android - AndroidサービスでAndroid mデバイスのRunTimePermissionsを実装するにはどうすればよいですか
Android サービスで Android M デバイスの RunTimePermissions を実装するにはどうすればよいですか?
androidManifest.xml で、もう一度デバッグすると、許可が拒否されたというエラーが表示されます。このサービスにどのように実装できますか。このRunTimePermissionsをAndroidアクティビティに簡単に実装できることはわかっていますが、サービスに許可ダイアログを実装するにはどうすればよいですか
android - すべての条件が true になった後でも、特定のコードが実行されません。詳細をご覧ください
私はアプリを開発しており、次のコードを使用してユーザーの現在の座標を取得しています(このライブラリから):
問題は、すべての条件が true になった後でも、このコードが実行されない場合があることです。以下のコードを参照してください。
上記のコードを実行すると、このコードによるトーストが表示されます。Toast.makeText(getBaseContext(), "called from btnRetryGpsEvents() - GPS available", Toast.LENGTH_SHORT).show();
これは、これが実行されていることを意味しますが、そのすぐ上のトーストがToast.makeText(getBaseContext(), "User's location retrieved using library for android M in btnRetryGpsEvents()", Toast.LENGTH_SHORT).show();
表示されていないため、実行されていません!
これはどのように起こりますか?ここで何がうまくいかないのですか????
私にお知らせください。
PS: この問題は Android M 以降でのみ発生します。
java - 許可のリクエスト中にアプリがクラッシュする
こんにちは、(WRITE_SETTINGS) アクセス許可を必要とするデバイス画面を制御するためのアプリを作成していますが、アクセス許可を要求する方法を使用しましたが、アプリがクラッシュします。私のアプリは、バージョンがAndroid 5よりも高いかどうかをチェックし、許可を要求するメソッドを呼び出しますが、機能しませんか?
ログキャット
java - requestPermissions() は何もしません
質問...
下位互換性を維持しながら、Android Marshmallow にランタイム権限を実装しようとしています。以前はこれでうまくいきましたが、今回は何が違うのかわかりません。物理的な Note 5 (Mallow を実行) でテストし、Marshmallow でセットアップされたエミュレーターを使用してテストしましたが、どちらも機能しません。
「うまくいかない」はあまり役に立たないことはわかっていますが、他に何を言うべきかわかりません。何も起こりません。アプリはクラッシュせず、requestPermissions(perms, 222)
呼び出された後にハングします。
私は何を間違っていますか?
詳細...
私の活動の関連部分:
実行すると、これらのみがログに記録されます (onRequestPermissionsResult()
はまったく呼び出されません)。
E/HomeActivity: スキップの理由
E/HomeActivity: ビルド バージョン: 23
E/HomeActivity: アクセス許可の取得
マニフェストには以下が含まれます。<uses-permission android:name="android.permission.CAMERA" />
編集
ボタンを初めてクリックしたときにのみ、これが Logcat に表示され、への呼び出しによってトリガーされるようです。shouldShowRequestPermissionRationale()
編集2
同じ元のコードをアクティビティからコピーし、スプラッシュ アクティビティに移動したところ、そこで正常に動作しました。今のところそこにとどまることができますが、何が起こっているのか知っている人がいれば、入力を歓迎します。
android - デバイス ID の代わりとしての Android ID
私のアプリは常に DeviceId を一意の識別子として使用しており、これにはもちろん、アクセス許可として READ_PHONE_STATE が必要です。以前は問題ありませんでしたが、現在は Marshmellow 23 に移行しました。この許可を求めると、実行時に非常に恐ろしいダイアログが表示されます...
「{my app} に通話の発信と管理を許可しますか?」
deviceId を取得したいだけのアプリにとって、これは非常に恐ろしいメッセージです。
許可が不要なAndroid IDに切り替えようと思っています。
グーグルで調べてみると、Android ID の使用にいくつか問題があることがわかりましたが、それはすべて古いものです。Froyo の時代には、すべての電話に同じ ID を作成する電話ベンダーがありましたが、私が見たのはこれだけです。
Android ID の使用に問題があることを知っている人はいますか? ありがとう、ディーン
android - 未使用のスクリーン オーバーレイの検出された権限ダイアログ
ユーザーが Google Vision API を使用して特定の Wi-Fi ネットワークに接続し、ssid を含む QR コードをスキャンできるようにするアプリを開発しています。Wi-Fi ネットワークをスキャンするには、ユーザーに位置情報の許可を求める必要があります。これは、設定に移動して場所のアクセス許可を手動で有効にするとすべて正常に機能しますが、実行時にアクセス許可を要求するときに、ユーザーが [有効にする] をタップすると、2 つ目のダイアログがポップアップし、アクセス許可Screen Overlay Detected
を有効にするにはコンテキスト スイッチが必要になりますScreen Overlay
。私は他のアプリを上書きしておらず、位置情報の許可を手動で有効にしても問題はありません。では、なぜこの許可ダイアログが表示されるのでしょうか?
Android がこの許可を求めている理由がわからないので、投稿するコードがわかりません。ネットワーク変更リクエストに必要な 3 つの許可のリクエストを含めました。
アップデート
それをつまずかせるのは、位置情報の許可だけではないことがわかりました。許可要求はすべて同じ動作をしています。
android - アクセス許可を要求するためのボイラープレート コードを重複して記述しないようにするにはどうすればよいですか?
Android 6 に対応するようにアプリを更新しています。パーミッション モデルは理論的にはさほど複雑ではありませんが、今はそれを実装する過程にあり、パーミッションを必要とするすべてのアクティビティで同じ醜いボイラープレート コードを書いていることに気付きました。
必要なすべての許可に対して、
次に、onRequestPermissionsResult
各リクエストの結果をチェック/フィルタリングし、それをアクティビティが理解できるものに変換する必要があります。
現在、2 番目のアクティビティを更新していますが、パーミッション コードは最初のアクティビティと非常に似ているため、ほとんどコピペしたように見えます。行は長く、コードは似ていて、見栄えが悪いだけです。
サードパーティのソリューションを使用したくありません。いくつか試してみましたが、コードを完全に制御したいと考えています。たとえば、一部のライブラリは、私のプロジェクトで使用している Java 8 をサポートしていません。
すべてのアクティビティで大量の重複コードを回避するにはどうすればよいですか?
java - Android ランタイム許可 GPS: 仮想メソッド 'android.content.pm.PackageManager android.content.Context.getPackageManager()' を呼び出そうとしています
私はコルドバに基づいて Android プロジェクトを開発しています。GPS 位置情報を使用するクラスがあり、新しいパーミッション ランタイムを実装したいと考えています。
GitHub の公式ドキュメントと google プロジェクトに従っていますが、次のエラーが発生します。
java.lang.NullPointerException: null オブジェクト参照で仮想メソッド 'android.content.pm.PackageManager android.content.Context.getPackageManager()' を呼び出そうとしています
この行で:
if (ActivityCompat.shouldShowRequestPermissionRationale(GpsTrackingActivity.this,Manifest.permission.ACCESS_FINE_LOCATION))
コードは次のとおりです。
私は何を間違えたのですか?