Androidカメラに画像などの特定のものを強制的に表示させる方法はありますか?
私は FakeGPS というアプリを持っています。基本的に、Android の GPS メソッドを使用しようとするシステムは、そのアプリを使用して設定した偽の座標を取得します。
カメラを除いて、まったく同じことをしたいです。
カメラを使用するアプリは、私が入れた画像を取得します。
Androidカメラに画像などの特定のものを強制的に表示させる方法はありますか?
私は FakeGPS というアプリを持っています。基本的に、Android の GPS メソッドを使用しようとするシステムは、そのアプリを使用して設定した偽の座標を取得します。
カメラを除いて、まったく同じことをしたいです。
カメラを使用するアプリは、私が入れた画像を取得します。
@dmarcatoが言ったように-すべてのカメラアプリケーションに関連するカメラで何かを操作したい場合-唯一の方法は、Androidのネイティブソースコードを何らかの方法で変更することです-この変更を含むAndroid OSイメージをコンパイルするときにのみ実行できる何か。
そのため、ユーザーごとにカスタム OS ファームウェアを提供しない場合 (サポートするデバイスごとに、特定のバイナリ ドライバーを含む別のイメージです..)、それを忘れることができます。
それだけでは不十分な場合は、ネイティブのコア カメラ コードが必ずしも android コードではなく、デバイスごとにおそらく完全に異なるベンダー固有のコードであるという問題もあります。これは、デバイス イメージごとに異なる「ハック」を実装して機能させる必要があることを意味します。
あなたが言おうとしていることは非常に不明確です。特定のファイルまたはコンテンツタイプに使用するアプリを強制的に設定したいと思います。コードからデフォルトのアプリを設定することは不可能です。特定の操作またはコンテンツ タイプの既定のアプリを選択できるのは、ユーザーのみです。
ただし、電話メーカーに関係なく、特定のシステムアプリを実行できますが、システムカメラの起動など、アプリケーションからのみ実行できます。
Intent systemCamera = null;
PackageManager pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
for(ApplicationInfo packageInfo:packages){
Intent i = pm.getLaunchIntentForPackage(packageInfo.packageName);
if(i != null && i.getAction().equals(MediaStore.ACTION_IMAGE_CAPTURE)){
if((packageInfo.flags & ApplicationInfo.FLAG_SYSTEM)!= 0){ //check if system app
systemCamera = i;
break;
}
}
}
startActivityForResult(systemCamera, MY_POSITIVE_INTEGER_REQUEST_CODE);
一見すると、あなたがしたいことは非倫理的に見えます。
カーネルまたはシステム ライブラリを変更する意思がない限り、それも不可能です。