我如何从Android设备上获取apk文件?或者如何将apk文件从设备传输到系统?
本周早些时候我问了一个类似的问题,但我仍然不了解如何获取所有已安装应用程序的列表,然后选择一个运行.
我试过了:
Intent intent = new Intent(ACTION_MAIN);
intent.addCategory(CATEGORY_LAUNCHER);
Run Code Online (Sandbox Code Playgroud)
这只显示预先安装的应用程序或可以运行ACTION_MAIN Intent类型的应用程序.
我也知道我可以使用PackageManager来获取所有已安装的应用程序,但是如何使用它来运行特定的应用程序呢?
我在哪里可以找到.apk我的设备上的应用程序文件,我从Google Play商店下载并安装该文件.以防我想通过蓝牙等将它发送给我的一个朋友..,??
从Android设备programmaticaly检索*.apk文件名需要一些帮助吗?如果我只知道文件名中的一部分,那么任何机构都可以提供一些Android方法,甚至可以在Android下运行shell命令来获取文件位置吗?
另外,如果有一种方法可以找到从市场或外部市场下载后*.apk文件的去向?
先感谢您.
我正在创建一个向用户显示个性化问候消息的应用程序.
例如:如果我通过蓝牙发送我的应用程序(或者我通过电子邮件发送应用程序安装)给X人在他生日当天祝贺他,一旦安装了应用程序的人,就会出现一条消息,说"祝贺X" .
编辑:当从Google Play安装应用程序从Google Play中安装到应用程序时,我找到了一个解决方案
但如果情况不同,因为并非所有接收该应用的人都可以访问Google Play.
@mes发布了他建议使用AccountManager的答案.但是,如果设备中没有注册帐户或设备没有互联网连接,会发生什么?
例如,如果我将应用程序发送到X(X安装应用程序并将看到他的祝贺消息"祝贺X")并且X想要祝贺他的朋友Y(带有"祝贺Y"的消息)X将应用程序复制到SD他的朋友的设备,并期望当Y安装应用程序时,Y可以看到消息"祝贺Y".
它是相同的应用程序,但我需要在安装应用程序时传递将要祝贺的人的名字,这样每个人都可以在应用程序打开后用他的名字祝贺他的祝贺信息.
有没有办法实现这个目标?
我尝试在我的Android手机上获取已安装应用的APK文件,我遵循了这个答案,即不需要root访问。
我知道Facebook应用程序包的名称是com.facebook.katana,可以通过command看到它adb shell pm list package。
然后,我在命令行中尝试了:
adb shell pm path com.facebook.katana
Run Code Online (Sandbox Code Playgroud)
它返回:
package:/data/app/com.facebook.katana-2/base.apk
Run Code Online (Sandbox Code Playgroud)
然后,我通过以下方式将apk文件拉到计算机上:
adb pull /data/app/com.facebook.katana-2/base.apk
Run Code Online (Sandbox Code Playgroud)
但是输出是:
adb: error: remote object '/data/app/com.facebook.katana-2/base.apk' does not exist
Run Code Online (Sandbox Code Playgroud)
为什么我无法获取APK,但该答案说它可行?
我是android开发的新手.出于好奇,我想知道是否有可能从Android模拟器中恢复安装.apk文件???
我正在尝试开发一个备份文件的应用程序.我需要像Astro管理器那样提取已安装应用程序的APK文件.
如果有人知道如何提取请给我解决方案.
是否有可能通过Intent将一些音频文件分享给其他应用,如电报,谷歌驱动器,whatsapp?我的文件正在下载并保存到我的app私人文件夹中,例如:/data/user/0/myPackage/app_NameOfFolder/file.mp3
我写了这个简单的方法:
public void sendSound(String fileToSend){
try{
Log.d(TAG,"Sending: " + fileToSend);
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
Uri audioUri = Uri.parse(fileToSend);
sharingIntent.setType("audio/*");
sharingIntent.putExtra(Intent.EXTRA_STREAM, audioUri);
startActivity(Intent.createChooser(sharingIntent, "Share"));
}catch (Exception e){
Log.d("TAG",e.getMessage());
Log.d("TAG",e.toString());
}
}
Run Code Online (Sandbox Code Playgroud)
但是我无法分享它,收到错误:"无法分享请重试"如果我将文件移动到公共目录中,例如: Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).getPath() +"/file.mp3";
它有效,所以我认为它与许可相关,所以这是我的清单:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WAKE_LOCK" />
Run Code Online (Sandbox Code Playgroud)
不知道我做错了什么.