問題タブ [android-7.0-nougat]

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.

0 投票する
1 に答える
777 参照

android - Android N プレビューの Java 8

Android N Previewの公式 Java 8発表では、次のように述べられています。

Android の Jack コンパイラを使用すると、 Gingerbreadまでさかのぼる Android バージョンで、ラムダなどを含む多くの一般的な Java 8 言語機能を使用できるようになりました。(…) 一部の Java 8 言語機能 (デフォルト メソッドと静的メソッド、ストリーム、関数型インターフェイスなど) は、N 以降でも利用できるようになりました。

minSdkVersion 15小さなプロジェクトでJava 8を試すために、次のgradle構成を使用しています。

しかし、展開ターゲット セレクターには が表示されますminSdk(API23, N preview)。期待される動作ですか?

ここに画像の説明を入力

Gingerbread までさかのぼって利用できる Java 8 の機能/パッケージのリストはありますか? API <23 で Java 8 の機能を使用するには、どの gradle 設定またはサポート ライブラリが必要か知っていますか?

0 投票する
0 に答える
514 参照

android - Android N で DownloadManager のダウンロード ファイルにアクセスできない

必要なすべての権限を持つシステム アプリケーションがあります。以前は、DownloadManager を使用して apk をダウンロードし、PackageManager の installPackage() を介してリフレクションを使用して、その apk をインストールしていました。

残念ながら、次の N の動作変更 http://developer.android.com/preview/behavior-changes.html :

DownloadManager は、プライベートに保存されたファイルをファイル名で共有できなくなりました。COLUMN_LOCAL_FILENAME にアクセスするときに、レガシー アプリケーションがアクセス不能なパスになる可能性があります。Android N 以降を対象とするアプリは、COLUMN_LOCAL_FILENAME にアクセスしようとすると SecurityException をトリガーします。setDestinationInExternalFilesDir(Context, String, String) または setDestinationInExternalPublicDir(String, String) を使用してダウンロード場所を公開場所に設定するレガシー アプリケーションは、引き続き COLUMN_LOCAL_FILENAME のパスにアクセスできますが、この方法はお勧めできません。DownloadManager によって公開されたファイルにアクセスするための推奨される方法は、openFileDescriptor(Uri, String) を使用することです。

古い方法で試してみると、許可が拒否されたというエラーが表示されます。

PM の installPackage() に渡すには Uri が必要なので、現在、PM が後でアクセスしてインストールできるように、(廃止された) WORLD_READABLE モードでアプリケーションのプライベート フォルダーにファイルをコピーするだけです。これは非常にハッキリしていて、誰かがより良い方法を知っているかどうか疑問に思っていました (androiddev によって提案された他のオプションは、ファイルをパブリック ディレクトリにダウンロードすることですが、これにはオプションではない WRITE_EXTERNAL_STORAGE 権限を追加する必要があります。)

0 投票する
1 に答える
402 参照

android - アクティビティ ComponentInfo を開始できません。エラーは Android N からのみです

このコード、ファイルを探索します。Android 5、6 では問題なく動作しますが、android N では 3 回の受信エラーが発生します。どうすれば解決できますか?ありがとうございました。

コード:

ログキャット:

および問題のコード:

以前のバージョンと N の間で大きな変更が行われるか、それとも現在安定していませんか?

編集:

私はこれを意図しています:

androi N からの作業ですが、ファイル .mp4 .m3u8 .avi などは表示されません。

0 投票する
3 に答える
4572 参照

android - Android N でプログラムによってマルチウィンドウ モードに入る

Android N には、マルチ ウィンドウ モードという新機能があります。これにより、2 つのアプリケーションを並べてアクティブにすることができます (実際には 1 つがアクティブで、もう 1 つが一時停止していますが、両方を同時に見ることができます)。

アプリケーションをマルチウィンドウ モードにするために呼び出すことができる API を探しています。Android N SDK のドキュメントにはあまり助けがありませんでした。アプリの 2 つのアクティビティを並行して実行しようとしていますが、ユーザーが手動で手順を実行する必要はありません。

手動 でマルチウィンドウ モードに入る ユーザーは、次の方法でマルチウィンドウ モードに切り替えることができます。

ユーザーが概要画面を開き、アクティビティのタイトルを長押しすると、そのアクティビティを画面の強調表示された部分にドラッグして、アクティビティをマルチウィンドウ モードにすることができます。ユーザーが概要ボタンを長押しすると、デバイスは現在のアクティビティをマルチウィンドウ モードにし、概要画面を開き、ユーザーが別のアクティビティを選択して画面を共有できるようにします。

0 投票する
3 に答える
3298 参照

android - Android Nの後に実際の画面サイズを取得するには?

Android N では分割画面が導入されているため、アプリのウィンドウ サイズを元の半分にすることができます。分割画面モードでは、ディスプレイの高さが代わりにアプリのウィンドウの高さになるため、実際のデバイスの画面サイズを常に返すとgetActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);は限りません。実際の画面サイズを取得するために使用できる他の A​​PI はありますか?