私はアンドロイド開発に不慣れで、現在、テスト環境で使用するリモート コントロール用のアプリを作成しています。
私がやろうとしているのは、アプリ (この場合は netflix) を開いて x 秒待ってから、外部アプリを閉じて自分のアプリに戻ることです。netflix を開くには、次の URL を使用しています。
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("https://www.netflix.com/watch/80015343?preventIntent=false"));
browserIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(browserIntent);
これにより、デバイスにインストールされているメディア クライアント アプリが開きます。したがって、netflix を閉じて自分のアプリを返すことができるかもしれないと思ったので、次のように開いているプロセスを実行してみました。
for(ActivityManager.RunningAppProcessInfo runningProcess : runningProcesses){
System.out.println(runningProcess.processName);
if(runningProcess.processName.equals(NETFLIX_PACKAGE_NAME))
{
android.os.Process.sendSignal(runningProcess.pid, android.os.Process.SIGNAL_KILL);
}
}
残念ながら、これは netflix アプリを取得しませんが、私のアプリのみを表示します。後で、それがAndroid 6.xのせいであることがわかりました。
私はすべての推奨事項に対してオープンです。一体どうすれば、netflix メディア クライアントを閉じてから、自分のアプリに戻ることができるでしょうか? 現時点では、私は単にこれをやっています:
Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(startMain);
これは、ネットフリックスをバックグラウンドに置くことでちょっと止めますが、もちろん、アプリに行き着くことはありません。また、サーバーに登録されているため、アプリを実際に再起動できません。可能ですが、登録を解除して再度登録する必要があります。ある種のスマートな方法があるに違いありません:-)
皆さんがここでアンドロイド初心者を助けてくれることを本当に願っています:-)
敬具、ベン