是否可以替换zip文件中的文件而不解压缩删除旧文件添加新文件并重新拉回?
原因是我有一个zip文件非常大,zip文件中有一个xml,我有时需要更新.拉开拉链并重新拉链需要很长时间.所以我想通过脚本替换zip中的一个xml.我已经检查了xml的更新.
那么可以在不解压缩和重新压缩的情况下更换一个xml吗?
对不起,我会使用zip命令做这样的事情但问题是脚本实际上是一个Android手机和zip不是一个命令我可以使用不幸抱歉我离开了那个.如果我可以,我肯定会使用zip,但我只有droid解压缩然后在busybox中有tar但是tar不能做我需要的东西
首先,我正在编写一个根应用程序,因此root权限不成问题.我搜索过并搜索过,发现很多代码对我来说从来没有用过,这是我到目前为止拼凑起来的东西.当我说sorta我的意思是它在我的/sdcard/test.png上生成一个图像但是该文件是0字节,显然无法查看.
public class ScreenShot extends Activity{
View content;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.blank);
content = findViewById(R.id.blankview);
getScreen();
}
private void getScreen(){
Bitmap bitmap = content.getDrawingCache();
File file = new File("/sdcard/test.png");
try
{
file.createNewFile();
FileOutputStream ostream = new FileOutputStream(file);
bitmap.compress(CompressFormat.PNG, 100, ostream);
ostream.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何有关如何通过代码在Android屏幕截图拍摄的帮助将非常感谢谢谢!
===编辑===
以下是我正在使用的所有图像是在我的SD卡上制作的,不再是0bytes但是整个东西都是黑色的,上面没有任何内容.我已将活动绑定到我的搜索按钮,所以当我在手机上的某个地方时,我长按搜索,它应该拍摄屏幕截图但我只是得到一个黑色图像?一切都设置透明,所以我认为它应该抓住屏幕上的任何东西,但我只是一直变黑
表现
<activity android:name=".extras.ScreenShot"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.SEARCH_LONG_PRESS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent" …Run Code Online (Sandbox Code Playgroud) 嗨,
我正在研究一个简单的文件浏览器应用程序.我已经设置了大部分内容(它列出了不同目录中的所有内容以及不同的内容)但是我现在所处理的内容(工作几个小时)是选择列表项时,我想要出现一个自定义列表对话框.我在android开发页面上找到了这个代码并略微修改了它.目前它只是提供了所选内容的祝酒词,但我需要将这三个项目分开.也就是说,我想做的不仅仅是祝酒,而是让每个选择都运行不同的命令.这是我目前的代码
final CharSequence[] items = {"Info", "Rename", "Delete"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Options for " + file.getName());
builder.setItems(items, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show();
}
}).show();
Run Code Online (Sandbox Code Playgroud)
感谢任何能帮助我分开它的人.我已经尝试了if语句的一些不同变体,但是我尝试过的所有内容都失败了.
嗨,我想得到用户设备上所有已安装的应用程序的列表,我一直在谷歌搜索最长的时间,但无法找到我想要的链接是最接近的,但工作正常除了我是新的不明白如何使用方法getPackages(); 并用它创建一个列表
http://www.androidsnippets.com/get-installed-applications-with-name-package-name-version-and-icon
任何关于如何创建实际列表的帮助将是一个主要的帮助我已经所有的代码已经无法获得列表实际显示感谢任何帮助
我正在尝试从广播接收器开始状态栏通知,然后从另一个广播接收器停止它,但我遇到了问题.我想在usb连接时在状态栏中启动通知,然后当usb断开连接时我想停止它我已经设置了两个接收器并正在努力启动并从接收器停止一个这里是代码我现在
我的代码唯一的错误就是myNotificationManager = (NotificationManager) getSystemService(context.NOTIFICATION_SERVICE);错误只是说getSystemService是未定义的,并且它想要制作我认为接收器不支持该方法的方法,就像活动那样我应该怎样做才能创建和停止收件人的通知谢谢你的帮助
public class USBConnect extends BroadcastReceiver {
public NotificationManager myNotificationManager;
public static final int NOTIFICATION_ID = 1;
@Override
public void onReceive(Context context, Intent intent) {
myNotificationManager = (NotificationManager) getSystemService(context.NOTIFICATION_SERVICE);
CharSequence NotificationTicket = "USB Connected!";
CharSequence NotificationTitle = "USB Connected!";
CharSequence NotificationContent = "USB is Connected!";
Notification notification = new Notification(R.drawable.usbicon, NotificationTicket, 0);
Intent notificationIntent = new Intent(context, MyClass.class);
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, NotificationTitle, NotificationContent, contentIntent);
notification.flags |= Notification.FLAG_ONGOING_EVENT;
myNotificationManager.notify(NOTIFICATION_ID, notification); …Run Code Online (Sandbox Code Playgroud) 嗨我有以下广播接收器,所以当我收到短信时我的活动被告知.我唯一无法弄清楚的是如何获得新短信的ID.如何才能做到这一点?我知道如何获取电话号码和消息,但我不需要我需要它的ID任何帮助将不胜感激
BroadcastReceiver sentSmsBroadcast = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction() == SMS_RECEIVED) {
Bundle bundle = intent.getExtras();
if (bundle != null) {
Object[] pdus = (Object[])bundle.get("pdus");
final SmsMessage[] messages = new SmsMessage[pdus.length];
for (int i = 0; i < pdus.length; i++) {
messages[i] = SmsMessage.createFromPdu((byte[])pdus[i]);
}
if (messages.length > -1) {
//Get sms id
}
}
}
}
};
IntentFilter filterSend = new IntentFilter();
filterSend.addAction("android.provider.Telephony.SMS_RECEIVED");
registerReceiver(sentSmsBroadcast, filterSend);
Run Code Online (Sandbox Code Playgroud) 嗨,我正在开发一个应用程序,它要求我运行一些bash代码有没有办法,我可以硬编码脚本到我的应用程序,然后运行它?例如(这是一个非常简化的例子)
#!/system/bin/sh
#
if [ ! -f /sdcard/hello.txt ]
then
echo 'Hello World' >> /sdcard/hello.txt
else
echo 'Goodbye World' >> /sdcard/goodbye.txt
fi
Run Code Online (Sandbox Code Playgroud)
我有以下方法来运行一行bash命令,但需要运行类似于多行的东西.再说上面的代码是一个非常简单的例子,我实际上在做什么必须通过脚本运行,不能通过java完成.我也想让它硬编码我知道可以将脚本存储在手机上并使用以下内容运行它但不希望脚本就在那里而不是它在应用程序中硬编码.
public Boolean execCommand(String command)
{
try {
Runtime rt = Runtime.getRuntime();
Process process = rt.exec("su");
DataOutputStream os = new DataOutputStream(process.getOutputStream());
os.writeBytes(command + "\n");
os.flush();
os.writeBytes("exit\n");
os.flush();
process.waitFor();
} catch (IOException e) {
return false;
} catch (InterruptedException e) {
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)
感谢您对我的问题的任何帮助
您好,我正处于应用程序的早期阶段,部分需要将音频从一台设备传输到多台设备.到目前为止,我一直在谷歌上寻找最佳解决方案,我发现这两个项目各有问题.
Spydroid http://code.google.com/p/spydroid-ipcamera/ 问题这个问题是它创建了一个仅限于一个连接设备的rtsp流.如果我浏览到链接两个我的电脑我看到这两个客户端连接的应用程序,但随后的第二个瞬间断开连接和应用程序说我的手机不支持此功能.我潜入源代码并在Session.java文件中找到if语句,上面有注释,说明阻止了两个连接,我注释掉了if语句,并且catch子句在运行后抓住了我.如果我可以使用多个连接工作,因为它工作超过3g,这个项目将是完美的.
PttDroid http://code.google.com/p/pttdroid/ 问题这个问题是它允许我需要的多个连接,但我只能通过wifi工作.它说,在主页上有它的工作原理在3G,但只有单播,我需要多投了3G和WiFi,我是无法得到的单播了3G到正常工作.
所以我的问题归结为这应该是什么路径,以及从我的Android设备到多台计算机和其他Android设备的流式音频.
非常感谢您的帮助!
嗨,我正在开发一个使用标签栏的应用程序.如果用户已登录,则选项卡栏应该有5个选项卡,如果用户已注销,则只有3个选项卡.我的MainAppDelegate.m中有一个if语句,看起来像这样,uid告诉用户是否登录
UIViewController *popular = [[[PopularViewController alloc] initWithNibName:@"PopularViewController" bundle:nil] autorelease];
UIViewController *upcoming = [[[UpcomingViewController alloc] initWithNibName:@"UpcomingViewController" bundle:nil] autorelease];
UIViewController *account = [[[AccountViewController alloc] initWithNibName:@"AccountViewController" bundle:nil] autorelease];
UIViewController *message = [[[MessageViewController alloc] initWithNibName:@"MessageViewController" bundle:nil] autorelease];
UIViewController *more = [[[MoreViewController alloc] initWithNibName:@"MoreViewController" bundle:nil] autorelease];
self.tabBarController = [[[UITabBarController alloc] init] autorelease];
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if([prefs objectForKey:@"uid"]){
self.tabBarController.viewControllers = @[popular, upcoming, account, message, more];
}else{
self.tabBarController.viewControllers = @[popular, upcoming, more];
}
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
Run Code Online (Sandbox Code Playgroud)
当用户注销时,我执行以下操作,通过删除帐户和消息将我带到三个选项卡,只有在用户登录时才能看到
NSMutableArray *tbViewControllers = [NSMutableArray arrayWithArray:[self.tabBarController viewControllers]]; …Run Code Online (Sandbox Code Playgroud) 我正在尝试将图像动态加载到信息窗口中。问题是 SDWebImage 永远不会完成。但是,一旦我再次单击标记,图像就会显示并完成,但不会在第一次被调用。我的“运行”日志第一次显示,所以我知道代码正在被调用,但在第一次运行时不会显示完整,除非图像被缓存,在这种情况下它会显示在第二个标记点上。
旁注:我将图像的链接存储在片段中,因为我没有其他用途。
任何想法为什么 SDWebImage 不完整?或者有没有其他人能想到的更好的方法?
我在文档块下看到的最后一件事它说以下似乎适合但我不知道我是如何取消请求以导致这种行为的。
注意:如果您的图像请求在完成之前被取消,则不会调用您的成功块和失败块。
bool tapped = NO;
-(BOOL) mapView:(GMSMapView *) mapVieW didTapMarker:(GMSMarker *)marker{
tapped=YES;
[mapVieW setSelectedMarker:marker];
return YES;
}
- (UIView *)mapView:(GMSMapView *)mapVieW markerInfoWindow:(GMSMarker *)marker{
if([marker.snippet isEqualToString:@""] || [marker.snippet isEqualToString:nil]){
//no image
tapped = NO;
//code here
return view;
}else{
//image
//code for custom view which is unimportant
if(tapped){
NSLog(@"run");
[image setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@/%@", URL_PREFIX, marker.snippet]] placeholderImage:[UIImage imageNamed:@"you"] completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
NSLog(@"complete");
tapped=NO;
[mapView setSelectedMarker:nil];
[mapView setSelectedMarker:marker];
}]; …Run Code Online (Sandbox Code Playgroud) android ×7
bash ×2
ios ×2
java ×2
list ×2
arrays ×1
bitmap ×1
caching ×1
dialog ×1
file-browser ×1
google-maps ×1
image ×1
infowindow ×1
install ×1
marker ×1
screenshot ×1
shell ×1
sms ×1
statusbar ×1
zip ×1