2011-02-08 15 views
1

デフォルトのカメラアプリと同じアプリを作成したいのですが、小さな変更(ビデオが無効になっているか追加機能が追加されています)が1つしかありません。どうすればいいのですか?アンドロイドアプリを延長する

カメラアプリのソースコードを入手して変更するだけですか、Androidシステムのコアコンポーネントを拡張する方法はありますか?

答えて

1

アンドロイドで絵を受け取ることができます次に

public void imageFromCamera() { 
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
    mImageFile = new File(pathToStoreImage); //file where image will be stored 
    mSelectedImagePath = mImageFile.getAbsolutePath(); //path to file where image will be stored 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(mImageFile)); 
    startActivityForResult(intent, TAKE_PICTURE); 
} 

オープンソースです:あなたはフルサイズにしたい場合は、Mediastore.EXTRA_OUTPUTそうのように使用する必要がありますアンドロイドで(マップのようなGoogleのアプリではない)。実際にはthe android git repoから最新の元のカメラアプリをダウンロードできます。 apkのビルドは、あなたがアンドロイドソース全体をダウンロードする場合にのみ可能です。 android-sourceを構築する方法の概要については、this howtoを参照してください。必要に応じてソースを変更することができます。

私は何のプラグインAPIが存在しないので、ソースをコピーせずにカメラアプリを拡張することは不可能であることをかなり確信している(または似)カメラAPIの。

+0

実際には、apktoolを使ってバイナリをパッチすることができます。適切なSDKアプリケーションではないため、プラットフォームビルドのコンテキストでのみコンパイルされる組み込み関数については、これは価値があることがあります。私がdalvikコードで直接変更を把握できない場合は、sdkの下でコンパイルするように変更された変更点(小さな関数をスタブするなど)に合わせて小さなコードを取得し、それをガイド/ dalvikコードを修正するためのソースをペーストします。 –

2

bizso99、

あなたは、単にそのようなカメラのsansのビデオ機能である、あなたのActivityからIntentを呼び出すことができます。

public void imageFromCamera() { 
    Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
    startActivityForResult(intent, TAKE_PICTURE); 
} 

これは、画像の小さなサムネイルバージョンを返します。あなたはすべての株式アプリのソースをダウンロードすることができますので、あなたがonActivityResult()

+0

私は、既存のすべての機能を維持しながら、デフォルトのシステムカメラアプリに新しい機能を追加し、それを「カメラプラス」と呼ばれるスタンドアロンアプリとして提示する方法はありますか? – siamii

+0

画像処理後のみを予定していない限り、この方法ではできないと思います。さもなければ、あなたはカメラにフックし、自分の 'Canvas'オブジェクトにストリームを表示し、'カメラクラス 'を使ってすべてを手動で処理する必要があります。 –