2015-07-27 22 views
5

Sono andato al sito Web Samsung e scaricato il pacchetto SDK di Media Control. Quando ho utilizzato il lettore video Cast di AllShare sul mio Galaxy S3 Android 4.3, la mia Smart TV (nella stessa rete) è comparsa nell'elenco Cast di AllShare.AllShare Cast/Screen Cast non funziona su alcuni telefoni

Tuttavia,

Quando ho usato la stessa applicazione sul mio Galaxy radicata Nota 2 Android 4.1.1, mia Smart TV (nella stessa rete) non ha mostrato sulla lista del cast AllShare.

Codice:

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); 
       } 
      } 
     } 
    } 
} 

Il wifi è stata accesa.

Qualcuno può aiutarmi?

ci sono applicazioni che può anche vedere il mio dispositivo Apple TV (la mia app non può nemmeno vedere questo dispositivo Apple TV sul cast AllShare)

Grazie mille.

risposta

0

Se non sbaglio, il cast di AllShare è costruito su Miracast. Quella funzione era inclusa in Android 4.2 per i dispositivi con il supporto hardware necessario, il che spiegherebbe perché il tuo Note 2 in esecuzione 4.1.1 presenta problemi.

+0

Grazie per i commenti, ma non è vero. Il loro sito dice "Dispositivi con Android 4.0 Ice Cream Sandwich (livello API 14) o superiore" Link: http://developer.samsung.com/galaxy#media-control grazie mille –

+0

Ora che ne parli, penso che il supporto Miracast è stato aggiunto al dongle/dispositivo AllShare tramite un aggiornamento software. Samsung ha davvero non aggiornato la nota 2 precedente 4.1.1? – blunden

+0

Non ne ho idea, grazie –