我正在做一个Android应用程序,我需要2台或更多设备才能通过蓝牙连接到一台设备.以对等形式将两个设备连接在一起的代码有效,但是当我尝试连接另一个时,我得到一个IOException,说"连接被拒绝",因为Socket已关闭,因此无法完成配对.错误如下所示.
Socket closed. Unable to complete pairing.
java.io.IOException: Connection refused
at android.bluetooth.BluetoothSocket.connectNative(Native Method)
at android.bluetooth.BluetoothSocket.connect(BluetoothSocket.java:216)
at com.ablueworld.androidgridcomputingframework.BluetoothManager$ConnectAsyncTask.doInBackground(BluetoothManager.java:270)
at com.ablueworld.androidgridcomputingframework.BluetoothManager$ConnectAsyncTask.doInBackground(BluetoothManager.java:1)
at android.os.AsyncTask$2.call(AsyncTask.java:264)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
at java.util.concurrent.FutureTask.run(FutureTask.java:137)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
at java.lang.Thread.run(Thread.java:856)
Could not connect to this device
Run Code Online (Sandbox Code Playgroud)
我已经读过它需要为每个连接提供不同的UUID,是吗?无论如何,我已经编写了如下所示的代码,为每个新连接从数组中获取不同的UUID.
// Unique UUID for this application
private static int indexUUID = 0;
private static final UUID[] MY_UUID_SECURE = {UUID.fromString("98b97e6b-62ff-4a36-a81b-82256fd1d168"),
UUID.fromString("98b97e6b-62ff-4a36-a81b-82256fd1d169"),
UUID.fromString("98b97e6b-62ff-4a36-a81b-82256fd1d170"),
UUID.fromString("98b97e6b-62ff-4a36-a81b-82256fd1d171"),
UUID.fromString("98b97e6b-62ff-4a36-a81b-82256fd1d172")};
private static final String NAME_SECURE = "GridFrameworkSecure";
/**
* Method to connect securely to Bluetooth device using it's MAC …Run Code Online (Sandbox Code Playgroud) 我有一个Bitmap图像,我必须存储在SD卡的文件夹中,我的代码如下所示.它按预期创建文件夹和文件,但图像没有存储到文件中,它仍然是一个空文件...任何人都可以告诉我什么是错的?
Bitmap merged = Bitmap.createBitmap(mDragLayer.getChildAt(0).getWidth(), mDragLayer.getChildAt(0).getHeight(), Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(merged);
// save to folder in sd card
try {
File imagesFolder = new File(Environment.getExternalStorageDirectory(), "folder");
if(!imagesFolder.exists())
imagesFolder.mkdirs();
int imageNum;
if(imagesFolder.list()==null)
imageNum = 1;
else
imageNum = imagesFolder.list().length + 1;
String fileName = "file_" + String.valueOf(imageNum) + ".jpg";
File output = new File(imagesFolder, fileName);
while(output.exists()){
imageNum++;
fileName = "file_" + String.valueOf(imageNum) + ".jpg";
output = new File(imagesFolder, fileName);
}
OutputStream fOut = new FileOutputStream(output);
merged.compress(Bitmap.CompressFormat.JPEG, 100, fOut);
fOut.flush();
fOut.close(); …Run Code Online (Sandbox Code Playgroud) 所以我的布局中有一个ImageView,当用户滑过后者时我想向右或向左滑动它.我使用TranslateAnimation来翻译ImageView,如下所示.
ImageView logoFocus = (ImageView) findViewById(R.id.logoFocus);
Animation animSurprise2Movement = new TranslateAnimation(logoFocus.getLeft(), logoFocus.getLeft()+150, logoFocus.getTop(), logoFocus.getTop());
animSurprise2Movement.setDuration(1000);
animSurprise2Movement.setFillAfter(true);
animSurprise2Movement.setFillEnabled(true);
logoFocus.startAnimation(animSurprise2Movement);
Run Code Online (Sandbox Code Playgroud)
我已将此代码放在我的"向右滑动"部分,并使用相同的代码但使用getLeft() - 150用于"向左滑动"部分.当我第一次滑动时,它按预期工作,但当我向另一个方向滑动时,ImageView返回到其原始位置,然后向另一个方向滑动,而不是仅滑动到原始位置.
我已经尝试在AnimationListener的onAnimationEnd方法中添加以下内容,我将其设置为动画,但是徒劳无功.
MarginLayoutParams params = (MarginLayoutParams) logoFocus.getLayoutParams();
params.setMargins(logoFocus.getLeft()+150, logoFocus.getTop(), logoFocus.getRight(), logoFocus.getBottom());
logoFocus.setLayoutParams(params);
Run Code Online (Sandbox Code Playgroud)
我也尝试过以下相同的方法,但是这两种方法都没有按预期工作.
((RelativeLayout.LayoutParams) logoFocus.getLayoutParams()).leftMargin += 150;
logoFocus.requestLayout();
Run Code Online (Sandbox Code Playgroud)
有人请帮帮我吗?即使使用了setFillAfter(true)和setFillEnabled(true),动画后的位置似乎也没有变化.有没有使用TranslateAnimation的替代方案?
谢谢你的帮助.:)
android position imageview android-animation translate-animation