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).
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 –
Ş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
Hiçbir fikrim yok, teşekkürler –