2012-02-02 14 views
2

コンタクトアイコンとしてイメージを設定したいと思います。その画像はキャッシュに保存されます。これは私のコードです -キャッシュイメージをコンタクト写真に設定

Intent myIntent = new Intent(); 
    myIntent.setAction(Intent.ACTION_ATTACH_DATA); 
    myIntent.setType("image/jpeg"); 
    myIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse(getApplicationContext().getCacheDir() 
      .getAbsolutePath() 
      + "/" + fileName)); 
    startActivityForResult(Intent.createChooser(myIntent, "Set As"), 
      200); 

このコードは私にオプションの連絡アイコン、壁紙を与えています。 連絡先アイコンを選択すると、連絡先リストが開いています。連絡先リストから連絡先を選択すると、アプリがクラッシュしています。

ログがある -

E/AndroidRuntime(15004): FATAL EXCEPTION: main 
E/AndroidRuntime(15004): java.lang.RuntimeException: Failure delivering result      ResultInfo{who=null, request=1, result=-1, data=Intent { dat=content://com.android.contacts/contacts/lookup/0r2-5C48544A48463C46323C2C/2 (has extras) }} to activity {com.android.contacts/com.android.contacts.AttachImage}: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.android.camera.action.CROP (has extras) } 
E/AndroidRuntime(15004): at android.app.ActivityThread.deliverResults(ActivityThread.java:3515) 
E/AndroidRuntime(15004): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3557) 
E/AndroidRuntime(15004): at android.app.ActivityThread.access$2800(ActivityThread.java:125) 
E/AndroidRuntime(15004): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2063) 
E/AndroidRuntime(15004): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime(15004): at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime(15004): at android.app.ActivityThread.main(ActivityThread.java:4627) 
E/AndroidRuntime(15004): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime(15004): at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime(15004): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
E/AndroidRuntime(15004): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
E/AndroidRuntime(15004): at dalvik.system.NativeStart.main(Native Method) 
E/AndroidRuntime(15004): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.android.camera.action.CROP (has extras) } 
E/AndroidRuntime(15004): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408) 
E/AndroidRuntime(15004): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378) 
E/AndroidRuntime(15004): at android.app.Activity.startActivityForResult(Activity.java:2817) 
E/AndroidRuntime(15004): at com.android.contacts.AttachImage.onActivityResult(AttachImage.java:133) 
E/AndroidRuntime(15004): at android.app.Activity.dispatchActivityResult(Activity.java:3890) 
E/AndroidRuntime(15004): at android.app.ActivityThread.deliverResults(ActivityThread.java:3511) 

私はいただきました!私のコードで間違って見つけることができませんでした。私はこれにいくつかの許可を加える必要がありますか?

これはandroid set image as contact icon/wallpaper

の重複することができますが、私は、このためにどんな解決策を見つけることができませんでした。誰かが解決策を知っていれば私を助けてください。

答えて

7

私はそれを行っている:

この

は、いくつかの洞察を提供することができます。あなたはちょうど適切な意図を設定する必要があり、意図はです

Uri sendUri = Uri.fromFile(externalFile) 
Intent intent = new Intent(Intent.ACTION_ATTACH_DATA); 
     intent.setDataAndType(sendUri, "image/jpg"); 
     intent.putExtra("mimeType", "image/jpg"); 
     startActivityForResult(Intent.createChooser(intent, "Set As"), 200); 
+0

私は同様の問題を抱えていました。連絡先とNovaの壁紙は私がこの意図を送ったときに私のためにクラッシュしていました。 'intent.putExtra(" mimeType "、" image/jpg ")'を追加しました。ありがとう! – Twinsen

+0

@ Shwetaありがとう、非常に助かります – NightCrawler

+0

ありがとうございます。それは素晴らしい(Y) –

0

エラーが明らかである:

Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.android.camera.action.CROP (has extras) } 
E/AndroidRuntime(15004): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408) 

ここで注目されるように、何もそのアクションを処理することはできません(com.android.camera.action.CROP)、私はHOPEあなたは入力しませんでしたその意図のための行動で How to select and crop an image in android?

+0

ありがとう@即時応答のための@JoxTraex。私がIntent.ACTION_ATTACH_DATAアクションを設定していることを、私が指摘しているように。 com.android.contacts/.AttachImageコンポーネントが起動します。このアクティビティは、com.android.camera.action.CROPアクションを設定しています。したがって、このアクティビティで処理する必要があります。また、私はこのアクションを設定することができますので、私はリストから連絡先を選択した後、任意の呼び出しを取得していません。 – Shweta

+0

何かがありません。ソースを見てください。 – JoxTraex

関連する問題