ADBシェルから共有アクティビティを開始します。 ADBシェルからの共有アクティビティの開始
は具体的に私はこの(作業)のjava-スニペットと同じことを達成しようとしています:adb shell am start -a android.intent.action.SEND -t image/jpeg --es android.intent.extra.STREAM file:///storage/emulated/0/_tmp/1.jpg com.snapchat.android --grant-read-uri-permission
私は現在直面しています問題は、次のとおりです。ここで
File dir = Environment.getExternalStorageDirectory();
File yourFile = new File(dir, "/_tmp/1.jpg");
Uri yourFileUri = Uri.fromFile(yourFile);
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
sendIntent.setType("image/*");
sendIntent.putExtra(Intent.EXTRA_STREAM, yourFileUri);
sendIntent.setPackage("com.snapchat.android");
startActivity(sendIntent);
私が使用していたコマンドですスナップチャットアプリが開いて読み込まれ、1秒間黒く点滅しますが、画像を読み込むことができません。私は間違って何をやっている
adb shell am start -t image/jpeg -d file:///storage/emulated/0/_tmp/1.jpg
:
は、私がイメージへのパスは、次のコマンドを発行して作業、およびAndroidのギャラリーで画像を開いていることを確認していますか?
編集:
コマンドを使用:
adb shell am start -a android.intent.action.SEND -t image/jpeg --es android.intent.extra.STREAM file:///storage/emulated/0/_tmp/1.jpg com.snapchat.android/com.snapchat.android.LandingPageActivity --grant-read-uri-permission
が同じ結果を与える、しかし私はDDMSでの実際の呼び出しにそれを比較して、ここでの違いを参照してください。
ログを手動で共有することにより、電話:
10-19 18:01:54.020: D/HtcShareActivity(21561): onItemClick: position=0 activity=com.snapchat.android/com.snapchat.android.LandingPageActivity
10-19 18:01:54.061: I/ActivityManager(724): START u0 {act=android.intent.action.SEND typ=image/jpeg flg=0x1 cmp=com.snapchat.android/.LandingPageActivity (has clip) (has extras)} from uid 10078 on display 0
ADBコマンドを使用してログ:
10-19 18:04:29.096: I/ActivityManager(724): START u0 {act=android.intent.action.SEND typ=image/jpeg flg=0x10000000 cmp=com.snapchat.android/.LandingPageActivity (has extras)} from uid 2000 on display 0
ご覧のとおり、(has clip)
はADBコールには存在しません。
それは--grant-read-uri-permission
は「作業」ではないか、少なくとも十分な権限を与えていないことだろうか?
これをテストして最終的に解決するにはどうすればよいですか?
あなたのために良い - あなたが望んだことをするコマンドを見つけました。根本原因の分析は間違っています。 '--es'と' --eu'ではなく 'image/*'と 'image/jpeg'の違いがありました。シェルグロブリング(ワイルドカード拡張)は元のコマンドを台無しにしていました。 –
@AlexP。私は '--es'と' --eu'の謎を解決するのに、私がOPでやったコピーとペーストを編集するのを忘れるより多くの時間を無駄にしてくれると確信できます。しかし、私はそれを編集させてください。 – Snowlav