ボタンをクリックすると、別のスマートフォンに画像をNFC経由で送信する方法があります。コードは正しいと思われ、実行はコードの最後の行に到着しますが、何も起こりません。どちらのスマートフォンにもNFCとAndroid Beamがあります。すべてのヘルプはクリックで起動することはできませんNFCを使用して画像を送信できません
1
A
答えて
0
ビーム通信をいただければ幸いです
public void sendFile(View view){
nfcAdapter=NfcAdapter.getDefaultAdapter(this);
if(!nfcAdapter.isEnabled()){
Toast.makeText(this,"Please enable NFC",Toast.LENGTH_SHORT).show();
startActivity(new Intent(Settings.ACTION_NFC_SETTINGS));
} else if (!nfcAdapter.isNdefPushEnabled()) {
Toast.makeText(this,"Please enable android beam",Toast.LENGTH_SHORT).show();
startActivity(new Intent(Settings.ACTION_NFCSHARING_SETTINGS));
} else {
//If we got here, Nfc and Android beam are enabled
Toast.makeText(this,"Ok",Toast.LENGTH_SHORT).show();
String fileName="test.jpg";
File fileDirectory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES);
File fileToTransfer =new File(fileDirectory,fileName);
Toast.makeText(this,"Tutto Ok2",Toast.LENGTH_SHORT).show();
fileToTransfer.setReadable(true,false);
Uri fileUri=Uri.fromFile(fileToTransfer);
if(fileUri==null){
Toast.makeText(this,"File not found",Toast.LENGTH_SHORT).show();
} else{
//If we got here, the app has found the image and is ready to send it
Toast.makeText(this,"Tutto Ok3",Toast.LENGTH_SHORT).show();
//Send the image
nfcAdapter.setBeamPushUris(new Uri[]{Uri.fromFile(fileToTransfer)},this);
}
}
:ここではコードです。 Sharing Files with NFC:
は、公式ドキュメントを参照してください
この機能は、単純なAPIを持っており、ユーザーは簡単に触れるデバイスによって転送 プロセスを開始することができます。
ビーム通信をアクティブにするには、1つのデバイスが他のデバイスに接触する必要があります。 クリックでビームを転送することはできますが、デバイスはタッチした後でなければなりません。
お読みください:例えば
を別のデバイスにファイルを送信する:
public class MainActivity extends Activity {
NfcAdapter mNfcAdapter;
// Flag to indicate that Android Beam is available
boolean mAndroidBeamAvailable = false;
// Instance that returns available files from this app
private FileUriCallback mFileUriCallback;
@Override
protected void onCreate(Bundle savedInstanceState) {
// NFC isn't available on the device
if (!PackageManager.hasSystemFeature(PackageManager.FEATURE_NFC)){
/*
* Disable NFC features here.
* For example, disable menu items or buttons that activate
* NFC-related features
*/
...
// Android Beam file transfer isn't supported
} else if (Build.VERSION.SDK_INT <
Build.VERSION_CODES.JELLY_BEAN_MR1) {
// If Android Beam isn't available, don't continue.
mAndroidBeamAvailable = false;
/*
* Disable Android Beam file transfer features here.
*/
...
// Android Beam file transfer is available, continue
} else {
mNfcAdapter = NfcAdapter.getDefaultAdapter(this);
/*
* Instantiate a new FileUriCallback to handle requests for
* URIs
*/
mFileUriCallback = new FileUriCallback();
// Set the dynamic callback for URI requests.
mNfcAdapter.setBeamPushUrisCallback(mFileUriCallback,this);
}
}
/**
* Callback that Android Beam file transfer calls to get
* files to share
*/
private class FileUriCallback implements
NfcAdapter.CreateBeamUrisCallback {
public FileUriCallback() {
}
/**
* Create content URIs as needed to share with another device
*/
@Override
public Uri[] createBeamUris(NfcEvent event) {
// List of URIs to provide to Android Beam
Uri[] mFileUris = new Uri[1];
String transferFile = "transferimage.jpg";
File extDir = getExternalFilesDir(null);
File requestFile = new File(extDir, transferFile);
requestFile.setReadable(true, false);
// Get a URI for the File and add it to the list of URIs
fileUri = Uri.fromFile(requestFile);
if (fileUri != null) {
mFileUris[0] = fileUri;
} else {
Log.e("My Activity", "No File URI available for file.");
}
return mFileUris;
}
}
}
0
は別のスマートフォンを使用して解決しました。コードは正しく動作します。一部のデバイスにはNFCに関する問題があります(LG G2とNexus 5でテスト済み)
関連する問題
- 1. 画像を使用してcmdbufferを送信できません...
- 2. udpで大きな画像ファイルを送信できません
- 3. サーバに画像を送信できませんか?
- 4. 画像をサーバーに送信できません
- 5. Mailを使用してメールを送信できません:perlの送信者
- 6. はnode.jsを使用してメールを送信できません
- 7. firebaseコンソールを使用してデータメッセージを送信できません
- 8. ajax()ポストを使用してフォームデータを送信できません
- 9. メールガンを使用してメールを送信できません
- 10. ajaxを使用してフォームデータを送信できません。
- 11. nodemailerを使用してhtmlテキストを送信できません
- 12. MODX:FormItを使用してファイルを送信できません
- 13. Pythonリクエストを使用してフォームを送信できません
- 14. C++でソケットを介して画像を送信すると「画像を表示できません」
- 15. multerを使用して画像をアップロードできません。
- 16. は、PHPを使用して画像をアップロードできません
- 17. Angular.jsを使用して画像を表示できません
- 18. PUTメソッドを使用して画像をアップロードできません
- 19. NFC対応のアンドロイドスマートフォンをNFCタグとして使用し、nfcリーダーを使用してデータを受信します。
- 20. ngFlowを使用してデータuri形式で画像を送信
- 21. ADBコマンドを使用してwhatsappで画像を送信する
- 22. JHipsterとThymeleafを使用して画像をメールで送信
- 23. BufferWriterとBufferReaderを使用してTCPソケットで画像を送信
- 24. イベント受信者を使用してSharePointでメールを送信できません
- 25. SmtpClientによる画像送信は画像を表示しません
- 26. 角2のポストリクエストは画像データを送信しません
- 27. Android:POSTを使って画像を送信
- 28. ACTION_SEND text/htmlはhtml imageタグを使用して画像を送信していません
- 29. ImageMagick - "画像を描画できません" - SVGを使用
- 30. ajaxを使用して送信した後の画像アップロード
このコードを使用しても、NFCは動作しません。イメージは存在しますが、送信しません(当然、リソースのパスを変更しました) –
編集:私の最初のコードとして、それは10のうち1時間働いています。なぜ私は理解しません –
どのステップはうまくいかないのですか?タッチまたは転送中にまたは...あなたはlogcatにログインしていますか? – LaurentY