我已使用以下代码打开Google Play商店
Intent i = new Intent(android.content.Intent.ACTION_VIEW);
i.setData(Uri.parse("https://play.google.com/store/apps/details?id=my packagename "));
startActivity(i);.
Run Code Online (Sandbox Code Playgroud)
但它显示了一个完整的动作视图,以选择选项(浏览器/播放商店).我需要直接在Play商店中打开应用程序.
我得到了一个应用程序TransactionTooLargeException的错误跟踪.不可重复,从未有过.在文档中说
Binder事务失败,因为它太大了.
在远程过程调用期间,调用的参数和返回值将作为存储在Binder事务缓冲区中的Parcel对象传输.如果参数或返回值太大而不适合事务缓冲区,则调用将失败并抛出TransactionTooLargeException.
...
当远程过程调用抛出TransactionTooLargeException时,有两种可能的结果.客户端无法将其请求发送到服务(很可能,如果参数太大而无法放入事务缓冲区中),或者服务无法将其响应发送回客户端(最有可能的话,如果返回值为太大而不适合事务缓冲区).
...
所以,好吧,我正在传递或接收超出某个未知限制的参数.但是哪里?
堆栈跟踪不会显示我的文件中的任何内容:
java.lang.RuntimeException: Adding window failed
at android.view.ViewRootImpl.setView(ViewRootImpl.java:548)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:406)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:320)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:152)
at android.view.Window$LocalWindowManager.addView(Window.java:557)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2897)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
at android.app.ActivityThread.access$600(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:4977)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Caused by: android.os.TransactionTooLargeException
at android.os.BinderProxy.transact(Native Method)
at android.view.IWindowSession$Stub$Proxy.add(IWindowSession.java:569)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:538)
... 16 more
android.os.TransactionTooLargeException
at android.os.BinderProxy.transact(Native Method)
at android.view.IWindowSession$Stub$Proxy.add(IWindowSession.java:569)
at android.view.ViewRootImpl.setView(ViewRootImpl.java:538)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:406)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:320)
at android.view.WindowManagerImpl$CompatModeWrapper.addView(WindowManagerImpl.java:152)
at android.view.Window$LocalWindowManager.addView(Window.java:557)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2897)
at …Run Code Online (Sandbox Code Playgroud) 我正在修改我的应用程序,以便能够捕获,如果用户尝试发布而没有安装Facebook应用程序(SSO所需).这是我正在使用的代码:
try{
ApplicationInfo info = getPackageManager().
getApplicationInfo("com.facebook.android", 0 );
return true;
} catch( PackageManager.NameNotFoundException e ){
return false;
}
Run Code Online (Sandbox Code Playgroud)
问题是,它始终是一个错误.根据这里的问题,我需要请求相应的权限,但我不知道我需要请求什么权限.
我的问题是一个或其他的许可吗?
我需要开发一个具有共享功能的应用程序.我必须分享Facebook,Twitter,电子邮件和其他服务.
我怎样才能做到这一点?网上有图书馆吗?对于iOS开发,有ShareKit,但对于Android?
谢谢 :)
如果Facebook应用程序可用,我想从我的Android应用程序打开我的Facebook页面 - 如果没有:此页面应该在默认浏览器中打开.
为此,我尝试了以下代码:
try {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/MY_PAGE_ID"));
startActivity(intent);
} catch (Exception e) {
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.facebook.com/MY_PAGE_NAME")));
}
Run Code Online (Sandbox Code Playgroud)
问题是:我这里有一个Android设备,最新版本的Facebook.如果我想从我的应用程序打开Facebook页面,Facebook应用程序将打开,但没有我的页面.
我只看到消息:
无法加载时间线.
怎么了?
我正在开发一个扩展另一个现有应用程序功能的应用程序.我想知道最简单的方法是通过代码确定是否安装了第一个应用程序,最好是通过com.whoever.whatever引用它.几乎任何标准都会有所帮助.
我认为问题就是这样:找出用户是否在手机上安装了Facebook或Whatsapp的最佳方法是什么?我是否需要查看包裹或者最好的方法是什么?
在 Xamarin Android 中,我使用隐式意图来加载另一个应用程序。这可以是浏览器或其他任何东西。如果我想加载 Facebook 链接,操作系统允许我选择使用浏览器或特别是 Facebook 应用程序。页面所有者制作应用程序的其他一些链接也是如此。
有没有办法查明当前移动设备上是否安装了特定应用程序(例如 Stack Overflow 应用程序)?
我正在尝试使用DownloadManager该类从服务器下载Android应用程序,安装它然后检测安装何时完成.我使用两个接收器:一个用于检测下载过程,另一个用于检测安装过程.第一个接收器工作正常,但第二个接收器没有.我做错了什么?
DownloadManager dm = (DownloadManager) DownloadApplicationActivity.this.getSystemService(Context.DOWNLOAD_SERVICE);
DownloadManager.Request req = new DownloadManager.Request(Uri.parse(MY_LINK));
req.setTitle(MY_TITLE)
.setDescription("Downloading ....")
// download the package to the /sdcard/downlaod path.
.setDestinationInExternalPublicDir(
Environment.DIRECTORY_DOWNLOADS,
MY_PATH);
long enqueue = dm.enqueue(req);
BroadcastReceiver receiver= new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
Query query = new Query();
query.setFilterById(enqueue);
Cursor c =dm.query(query);
if (c.moveToFirst()) {
int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
if (DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) {
// show a notification bar.
NotificationManager notificationManager = …Run Code Online (Sandbox Code Playgroud) 我想查找设备上是否安装了特定应用程序并检索该应用程序的版本号。我如何以 Xamarin 形式执行此操作?我需要在 Android 和 iOS 中实现这一点。