• android.widget.ShareActionProvider does not work on the emulator


    Reported by Lars.Vo...@gmail.comFeb 13, 2012
    If I add a ShareActionProvider to my application it works file on a real device but not on the emulator. If I press the Share button in the emulator nothing happens.
    
    
    Here is my menu:
    
    <?xml version="1.0" encoding="utf-8"?>
    <menu xmlns:android="http://schemas.android.com/apk/res/android" >
    
       <item android:id="@+id/menu_share"
              android:title="Share"
              android:showAsAction="ifRoom"
              android:actionProviderClass="android.widget.ShareActionProvider" />
        <item
            android:id="@+id/item1"
            android:showAsAction="ifRoom"
            android:title="Hello">
        </item>
        <item
            android:id="@+id/item2"
            android:showAsAction="ifRoom"
            android:title="This will not fit in the Action bar">
        </item>
    
    </menu>
    
    I add this menu to my Activity:
    
    @Override
    	public boolean onCreateOptionsMenu(Menu menu) {
    		getMenuInflater().inflate(R.menu.mymenu, menu);
    		provider = (ShareActionProvider) menu.findItem(R.id.menu_share)
    				.getActionProvider();
    		doShare();
    		return true;
    	}
    
    
    
    	public void doShare() {
    		Intent intent = new Intent(Intent.ACTION_SEND);
    		intent.setType("text/plain");
    		intent.putExtra(Intent.EXTRA_TEXT, "Message");
    		provider.setShareIntent(intent);
    	}
    
    Comment 1 by project member x...@android.comFeb 23, 2012
    (No comment was entered for this change.)
    
     
     
     
    Status: 
    Owner: ad...@android.com
    Labels: -Component-Tools Component-Framework
     
     
     
    Comment 2 by jakewhar...@gmail.comMar 29, 2012
    This is due to their only being a single (or zero) applications which support that intent. If this is the case the provider will not allow any interaction. It would be nice if there was a Toast or the dropdown still showed with a message of some sort.
    
    Comment 3 by buz...@gmail.comMar 30, 2012
    I agree with Jake : this is because the emulator do not have many apps that can answer the intent.
    
    Comment 4 by Lars.Vo...@gmail.comMar 30, 2012
    SMS app is available and this accepts Intent.ACTION_SEND. If I trigger this directly it also works. Hence I suspect still a bug.
    
    Comment 5 by project member ad...@android.comMar 30, 2012
    (No comment was entered for this change.)
    
     
     
     
    Owner: svetosla...@android.com
     
     
     
    Comment 6 by dfuern...@gmail.comJun 7, 2012
    If you add another app (see attachment for example) to your emulator supporting ShareIntents of type text/plain and accepting Intent.ACTION_SEND, the ShareProvider will work. It then also displays the already mentioned Messaging App. This however should be considered a workaround. 
    
    pva-sharetarget.zip 
    147 KB   Download
    Comment 7 by digi...@gmail.comAug 1, 2012
    I can reproduce this bug too, and the weird thing is it works if you've opened the list at least once, with at least two intents. 
    
    For example:
    
    Two activities: Open list.
    Change intent to one that resolves to one activity.
    Open list: Still works.
    
    It doesn't work if you haven't yet opened it.
    
    Comment 8 by digi...@gmail.comAug 1, 2012
    Seems related to these lines in ActivityChooserView$ActivityChooserViewAdapter:
    
    if (!mShowDefaultActivity && mDataModel.getDefaultActivity() != null) {
    activityCount--;
    }
    
    IF you haven't opened the list yet, activityCount gets subtracted by 1, getCount() returns 0 and the button gets disabled. The list still contains one activity.
    
    The title should be changed, because this doesn't really have anything to do with the emulator and affects real production devices. Even if there's only 1 activity, it should still be shown instead of disabling the button.
  • 相关阅读:
    吴裕雄--天生自然ANDROID开发学习:1.9 Android程序签名打包
    吴裕雄--天生自然ANDROID开发学习:1.8 工程相关解析(各种文件,资源访问)
    html 上传预览图片
    git笔记
    iscroll 下拉刷新功能
    移动端页面 弹出框滚动,底部body锁定,不滚动 / 微信网页禁止回弹效果
    getElementsByClassName 兼容性
    登录页面-输入框清空按钮
    FireFox中iframe的返回上页问题
    ajax是异步的,异步取数据,如何能保证数据是存在的。
  • 原文地址:https://www.cnblogs.com/wanqieddy/p/2777294.html
Copyright © 2020-2023  润新知