2015-07-27 26 views
5

Samsung web sitesine gittim ve Media Control SDK paketini indirdim. AllShare Cast Video Oynatıcıyı Galaxy S3 Android 4.3 cihazımda kullandığımda, Smart TV'm (aynı ağda) AllShare Cast listesinden çıktı. AncakAllShare Cast/Screen Cast belirli telefonlarda çalışmıyor

, ben AllShare Cast listesinde görünmedi benim köklü Galaxy Note 2 Android 4.1.1 (aynı ağda) benim Smart TV aynı uygulama kullanılan

.

Kodu:

public class DevicePicker extends Fragment implements OnClickListener,SmcDeviceFinder.StatusListener, SmcDeviceFinder.DeviceListener { 


    public interface DevicePickerResult { 

     void onDeviceSelected(SmcDevice device); 

     /** 
     * User clicked to disable AllShare 
     */ 
     void onAllShareDisabled(); 
    } 

    /** 
    * The type of device we are interested in 
    */ 
    private int mType = SmcDevice.TYPE_AVPLAYER; 

    /** 
    * Listener to be notified of events 
    */ 
    private DevicePickerResult mPickerListener; 

    /** 
    * Device finder instance 
    */ 
    private SmcDeviceFinder smcDeviceFinder; 

    /** 
    * The ImageView displaying AllShare icon 
    */ 
    private ImageView mIcon; 

    /** 
    * Flag indicating if AllShare is currently active 
    */ 
    private boolean mActive; 

    private String mDeviceId; 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     // Set view, remember ImageView for icon and setup onclick listener. 
     View v = inflater.inflate(R.layout.device_picker, container, false); 
     mIcon = (ImageView) v.findViewById(R.id.devicePickerIcon); 
     mIcon.setOnClickListener(this); 
     return v; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     /* 
     if(savedInstanceState!=null){ 
      mDeviceId = savedInstanceState.getString("deviceId"); 
     } 
     */ 
    } 

    @Override 
    public void onSaveInstanceState(Bundle outState) { 
     super.onSaveInstanceState(outState); 

    } 

    public void setDeviceType(int type) { 
     mType = type; 
    } 

    public void setDeviceSelectedListener(DevicePickerResult listener) { 
     mPickerListener = listener; 
     restoreDevice(); 
    } 

    @Override 
    public void onActivityCreated(Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 

     // The service provider needs to be created after device type is set 
     // It could also be created in onStart or onResume, but we the sooner 
     // we create it, the sooner we get devices. 
     SmcDeviceFinder df = new SmcDeviceFinder(getActivity()); 
     df.setStatusListener(this); 
     df.start(); 

    } 


    private void restoreDevice(){ 
     if(smcDeviceFinder != null && mDeviceId!=null && mPickerListener != null) { 
      SmcDevice SmcDevice_ = smcDeviceFinder.getDevice(mType, mDeviceId); 
      if(SmcDevice_!=null){ 
       mPickerListener.onDeviceSelected(SmcDevice_); 
       setActive(true); 
      } 
     } 
    } 

    public void setActive(boolean newState) { 
     if (newState == mActive) { 
      // No change in state, do nothing 
      return; 
     } 
     mActive = newState; 
     mIcon.setImageResource(
       newState ? 
         R.drawable.allshare_icons_active : 
         R.drawable.allshare_icons_inactive); 
     updateButtonCounter(); 
    } 

    @Override 
    public void onClick(View v) { 
     if (v != mIcon) { 
      return; 
     } 

     if(smcDeviceFinder != null) { 

      int numDevices = smcDeviceFinder.getDeviceList(mType).size(); 

      // If no devices found, try refreshing the list. 
      if (numDevices == 0) { 
       smcDeviceFinder.rescan(); 
      } 

      // If we are already active, disable allshare 
      if (mActive) { 
       setActive(false); 
       if (mPickerListener != null) { 
        mPickerListener.onAllShareDisabled(); 
       } 
       return; 
      } 
     } 

     // Devices are available, and we are not connected 
     // Ask user to select device 
     showPickerDialog(); 
    } 

    @Override 
    public void onDetach() { 
     if (smcDeviceFinder != null) { 
      smcDeviceFinder.stop(); 
      smcDeviceFinder = null; 
     } 
     super.onDetach(); 
    } 

    /////////////////////////////////////////////////////////////////////////// 
    // These methods handle device finder start hide event. 
    /////////////////////////////////////////////////////////////////////////// 

    @Override 
    public void onStarted(SmcDeviceFinder deviceFinder, int error) { 
     if (error == Smc.SUCCESS) { 
      smcDeviceFinder = deviceFinder; 
      smcDeviceFinder.setDeviceListener(mType, this); 
      smcDeviceFinder.rescan(); 
      updateButtonCounter(); 
      restoreDevice(); 
     } 
    } 

    @Override 
    public void onStopped(SmcDeviceFinder deviceFinder) { 
     if (smcDeviceFinder == deviceFinder) { 
      smcDeviceFinder.setDeviceListener(mType, null); 
      smcDeviceFinder.setStatusListener(null); 
      smcDeviceFinder = null; 
     } 
    } 

    /////////////////////////////////////////////////////////////////////////// 
    // These methods handle devices appearing and disappearing in network. 
    /////////////////////////////////////////////////////////////////////////// 

    @Override 
    public void onDeviceAdded(SmcDeviceFinder deviceFinder, SmcDevice smcDevice) { 
     // We aren't interested in individual devices, only in their number 
     updateButtonCounter(); 
    } 

    @Override 
    public void onDeviceRemoved(SmcDeviceFinder deviceFinder, SmcDevice smcDevice, int error) { 
     // We aren't interested in individual devices, only in their number 
     updateButtonCounter(); 
     //if current device has been removed 
     if (smcDevice.getId().equals(mDeviceId)) { 
      setActive(false); 
      if (mPickerListener != null) { 
       mPickerListener.onAllShareDisabled(); 
      } 
     } 
    } 



    /** 
    * Methods that selects which icon to display, based on number of 
    * available devices in network. 
    */ 
    private void updateButtonCounter() { 
     if (smcDeviceFinder != null) { 
      int numDevices = 
       smcDeviceFinder.getDeviceList(mType).size(); 

      mIcon.getDrawable().setLevel(numDevices); 
      if (numDevices==0) { 
       setActive(false); 
      } 
     } 
    } 

    public void showPickerDialog() { 
     Intent intent = new Intent(getActivity(), DeviceSelectActivity.class); 
     intent.putExtra("deviceType", mType); 
     startActivityForResult(intent, 0); 
    } 

    /** 
    * Callback when user has selected device in device select activity. 
    */ 
    @Override 
    public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode == Activity.RESULT_OK) { 
      mDeviceId = data.getStringExtra("deviceId"); 
      int type = data.getIntExtra("deviceType", -1); 

      if (smcDeviceFinder != null && mPickerListener != null) { 
       SmcDevice device = smcDeviceFinder.getDevice(type, mDeviceId); 
       if(device!=null){ 
        mPickerListener.onDeviceSelected(device); 
        setActive(true); 
       } 
      } 
     } 
    } 
} 

wifi açıldı.

Birisi bana yardım edebilir mi?

bile benim Apple TV cihazı görebilirsiniz uygulamalar vardır

Çok teşekkür ederim (hatta AllShare Cast listesinde bu Apple TV cihazı göremiyorum benim app).

cevap

0

Yanılmıyorsam, AllShare dökümü, Miracast'in üzerine kurulmuştur. Bu özellik, gerekli donanım desteğine sahip cihazlar için Android 4.2'de yer aldı.

+0

Yorumlar için teşekkürler, ama bu doğru değil. Onların site diyor "Android 4.0 Ice Cream Sandwich (API seviyesi 14) veya daha yüksek cihazlar" Link: http://developer.samsung.com/galaxy#media-control çok teşekkürler –

+0

Şimdi bunu bahsetmişsiniz Miracast desteği düşünüyorum bir yazılım güncellemesi ile AllShare dongle/cihazına eklendi. Samsung, Not 2 geçmiş 4.1.1'i gerçekten güncellemedi mi? – blunden

+0

Hiçbir fikrim yok, teşekkürler –

İlgili konular